Display.displays.Length - это число "2". Но несколько мониторов не работают. :( - PullRequest
0 голосов
/ 15 октября 2019

У меня возникли проблемы.

Во-первых, моя компьютерная среда ниже:

  1. ОС: MacOS (Macbook pro 2015)
  2. Unity3D veresion: 2019.1.6f1 Personal
  3. Дополнительный монитор: монитор LG (подключен HDMI от Macbook)

Во-вторых, я настраиваю проект Unity ниже:

  1. Диалог разрешения дисплея: включен
  2. Камера (1) Целевой дисплей: Дисплей 1
  3. Камера (2) Целевой дисплей: Дисплей 2

В-третьих, я написал следующий код:

using UnityEngine;
using UnityEngine.UI;

public class DualMonitor : MonoBehaviour {
       public Camera camera1, camera2;
       public Text myText;

       void Start() {
            for (int i = 0; i < Display.displays.Length; i++) {
               Display.displays[i].Activate(Display.displays[i].systemWidth, Display.displays[i].systemHeight, 60);
            }

            // if (Display.displays.Length > 1)
            //    Display.displays[1].Activate(Display.displays[1].systemWidth, Display.displays[1].systemHeight, 60);

            myText.text = (Display.displays.Length).ToString();
            Debug.Log("Display connected: " + Display.displays.Length);
       }
}

Итак, я собрал и запустил мой компьютер. Текстовое значение «Display.displays.Length» равно «2».

Мой монитор MacBook отображается, но мой дополнительный монитор (монитор LG) ничего не показывает. Я не знаю.

[Дисплей моего macbook]

enter image description here

[Дисплей LG Monitor]

Видны только обои монитора.

Как решить эту проблему ..?

Если быть точным, я хочу знать, как он работает в Mac OS. (Я подтвердил, что он нормально работает в ОС Windows.)

Буду очень признателен, если вы дадите мне знать.

С уважением.

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Каждому экрану нужна своя камера, в настройках камеры вы можете установить, какой экран будет отображаться на enter image description here

Так что в вашем случае вам нужно 2 камеры. Камера 1 с целевым дисплеем 1 и Камера 2 с целевым дисплеем 2

0 голосов
/ 15 октября 2019

У меня эта проблема решена не очень хорошо. Но у меня есть другое решение этой проблемы.

Я использовал Windows 10 с Parallels. Parallels - это приложение Mac OS для виртуализации.

Итак, мой исходный код выше работал нормальнои функция двойного монитора была выполнена.

Я пока не нашел решения для исходной проблемы. Я найду решение для оригинальной проблемы. Может быть, я найду некоторую информацию, я опубликую новое сообщение для решения.

Наконец, краткая сводка моего временного решения проблемы ниже:

  1. Установите приложения Parallels.
  2. Установите Windows 10.
  3. Создайте новый проект Unity3D и добавьте две камеры.
  4. Настройка каждой камеры "Target Display".
  5. Создайте новый файл сценария и напишите исходный код выше.
  6. Сборка для Windows (x86 или x86_64)
  7. Запуск и тестирование

Спасибо всем, кто пытался помочья.

...