首页 > 解决方案 > 统一多显示器。如何使 display[0] 窗口化而其他人显示全屏?

问题描述

我的游戏中有3 个屏幕。我想显示display[0]为具有大小和全屏窗口width=600, heigth=450display[1]display[2]

所以,在我想展示的每个场景中,我都有三个摄像头,订阅了 main ,订阅了leftCameradisplay[0],订阅了rightCamera 然后我将以下脚本添加到左右摄像头以激活显示:display[1]display[2]

    //initialization
    void Start () {
        if (Display.displays.Length == 3)
        {
            Display.displays[1].Activate();
            Display.displays[2].Activate();
        }
        else if (Display.displays.Length == 2)
        {
            Display.displays[1].Activate();
        }
    }

    void Update () {            
    }

另一方面,我在Player settings上设置了以下内容:

在此处输入图像描述

当我开始游戏时,会出现一个窗口应用程序。画布中有一个Menu带有按钮的按钮,当我单击一个按钮时,我使用:

        public void OnButtonClickMenu1 ()
        {
            #if UNITY_5_3 || UNITY_5_3_OR_NEWER
               SceneManager.LoadScene ("MyScene1");
            #else
               Application.LoadLevel ("MyScene1");
            #endif
        }

因此,当我单击菜单按钮时,场景会在三台显示​​器上正确加载display[0] maximizes,并且我想display[0] 保持窗口化

我尝试设置SetParamsdisplay[0]内部按钮操作,例如:

            public void OnButtonClickMenu1 ()
            {
                Display.displays[0].SetParams(600, 450, 0, 0);
                #if UNITY_5_3 || UNITY_5_3_OR_NEWER
                   SceneManager.LoadScene ("MyScene1");
                #else
                   Application.LoadLevel ("MyScene1");
                #endif
            }

但是不工作,display[0]继续最大化......我该怎么做才能让它保持窗口状态?

I am using Unity 2018.2.6f1

标签: c#unity3dscreenfullscreen

解决方案


更换

Display.displays[0].SetParams(600, 450, 0, 0);

Screen.SetResolution(600, 450, false);

似乎主屏幕出于某种原因全屏显示。设置 Screen.SetResolution 使 display[0] 从全屏显示。这不会对其他窗口行为产生任何影响。


推荐阅读