双显示模式下分辨率不变

时间:2019-01-17 12:40:55

标签: c# unity3d

我有一个应用程序,如果第二台监视器可用,它会在第二台监视器上全屏显示渲染纹理。渲染纹理大小设置为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,因此屏幕的一部分是所需的显示,其余部分是黑色。

像这样的东西:

enter image description here

我尝试使用以下方法更改分辨率:

Display.displays[1].Activate(1920, 1080, 60);
Display.displays[1].SetParams(1920, 1080, 0, 0);
Display.displays[1].SetRenderingResolution(1920,1080);

但是没有用。我试过只显示相机视图而不显示渲染纹理,结果是相同的。如何以第二监视器分辨率全屏显示第二监视器上的摄像机视图?

0 个答案:

没有答案