c# - 统一多显示器。如何使 display[0] 窗口化而其他人显示全屏?
问题描述
我的游戏中有3 个屏幕。我想显示display[0]
为具有大小和全屏的窗口width=600, heigth=450
display[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]
保持窗口化
我尝试设置SetParams
为display[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
解决方案
更换
Display.displays[0].SetParams(600, 450, 0, 0);
和
Screen.SetResolution(600, 450, false);
似乎主屏幕出于某种原因全屏显示。设置 Screen.SetResolution 使 display[0] 从全屏显示。这不会对其他窗口行为产生任何影响。