我有一个应用程序,如果第二台监视器可用,它会在第二台监视器上全屏显示渲染纹理。渲染纹理大小设置为1920x1080。我在摄像机视图(目标显示设置为“显示2”)中设置渲染纹理,如下所示:
[ExecuteInEditMode]
public class ScreenBlit : MonoBehaviour {
public RenderTexture rndTexture;
void OnRenderImage(RenderTexture source, RenderTexture destination)
{
if (rndTexture!=null)
Graphics.Blit(rndTexture, destination);
}
}
然后像这样激活第二个显示:
public class DualDisplaySetup : MonoBehaviour
{
void Awake()
{
if (Display.displays.Length > 1)
{
Display.displays[1].Activate();
}
}
}
当我构建项目并运行exe时,所需的渲染纹理将显示在第二个监视器上,但分辨率为1280x720。由于第二个显示器的分辨率为1920x1080,因此屏幕的一部分是所需的显示,其余部分是黑色。
像这样的东西:
我尝试使用以下方法更改分辨率:
Display.displays[1].Activate(1920, 1080, 60);
Display.displays[1].SetParams(1920, 1080, 0, 0);
Display.displays[1].SetRenderingResolution(1920,1080);
但是没有用。我试过只显示相机视图而不显示渲染纹理,结果是相同的。如何以第二监视器分辨率全屏显示第二监视器上的摄像机视图?