Отображение изображений камеры на нескольких мониторах
С помощью нескольких дисплеев можно одновременно выводить до восьми разных видов камеры вашего приложения на восемь разных мониторов. Это подходит, например, для игр на ПК, игровых автоматов и публичных инсталляций.
Unity поддерживает мульти-дисплей на:
- Настольные платформы (Windows, macOS X, и Linux)
- Android (OpenGL ES и Vulkan)
- iOS
Некоторые функции работают только на некоторых платформах. См. Display, Screen и FullScreenMode APIs для получения дополнительной информации о совместимости.
Активация поддержки нескольких дисплеев
По умолчанию режим отображения Unity — только один монитор. При запуске приложения необходимо использовать Display.Activate() для явной активации дополнительных дисплеев. После активации дисплея его нельзя отключить.
Лучше всего активировать дополнительные дисплеи, когда приложение создает новый Scene. Хорошим способом сделать это является присоединение компонента скрипта к стандартному Camera. Убедитесь, что вы вызываете Display.Activate() только один раз во время запуска. В качестве наилучшей практики, вам может быть полезно создать небольшой начальный Scene для тестирования вашего скрипта.
Пример скрипта
using UnityEngine;
using System.Collections;
public class ActivateAllDisplays : MonoBehaviour
{
void Start ()
{
Debug.Log ("displays connected: " + Display.displays.Length);
// Display.displays[0] is the primary, default display and is always ON, so start at index 1.
// Check if additional displays are available and activate each.
for (int i = 1; i < Display.displays.Length; i++)
{
Display.displays[i].Activate();
}
}
void Update()
{
}
}
Просмотр нескольких дисплеев в вашем Project
Чтобы просмотреть различные представления Camera, выполните следующие действия:
- В течение Camera’s Inspector, выберите Цель Дисплей за это Camera.
Убедитесь, что вы находитесь в представлении Game.
Из меню Дисплей в верхнем левом углу выберите Дисплей для предварительного просмотра.
Поддержка API
Unity поддерживает следующие методы UnityEngine.Display API:
| Метод | Описание |
|---|---|
public void Activate() |
Этот вызов должен быть сделан один раз при запуске нового Scene. Он может быть вызван из пользовательского скрипта, прикрепленного к Camera или думи GameObject в новом Scene. |
public void Activate(int width, int height, int refreshRate) |
Только Windows. Активирует конкретный дисплей с настраиваемой шириной и высотой. На Linux и macOS X вторичные дисплеи всегда используют текущее разрешение дисплея, если оно доступно. |