Единство мультидисплея.Как сделать так, чтобы экран отображался [0], а другие отображались в полноэкранном режиме? - PullRequest
0 голосов
/ 18 декабря 2018

В моей игре 3 экрана .Я хочу показать display[0] как окно с размером width=600, heigth=450 и display[1] и display[2] как fullScreen

Итак, на каждой сцене я хочучтобы показать, у меня есть три камеры , главная подписана на display[0], leftCamera подписана на display[1], а rightCamera подписана на 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 () {            
    }

С другой стороны, я установил следующие параметры на Настройки плеера :

enter image description here

Когда я запускаю игру, появляется оконное приложение.Внутри холста есть 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

1 Ответ

0 голосов
/ 19 декабря 2018

Замените

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

на

Screen.SetResolution(600, 450, false);

Кажется, что главный экран по какой-то причине становится полноэкранным.Установка Screen.SetResolution заставляет дисплей [0] выходить из полноэкранного режима.Это не повлияет на поведение других окон.

...