Unity смена камеры/дисплея при повороте экрана
У меня есть некая сцена. На ней есть вертикальный Canvas и горизонтальный Canvas и они находятся на слоях UI и UI2. У них есть камеры, подключённые к дисплеям 1 и 2, которые так же настроены на UI и UI2. У этой игры должна быть пк и мобильная версия. Необходимо чтобы игра подстраивалась под ориентацию экрана и меняла камеру при повороте экрана (в случае с пк экран также может изначально иметь вертикальную ориентацию). У меня не получается реализовать переключение при повороте телефона в симуляторе, думаю что и с пк версией на разных экранах на практике будет не всё гладко. Подскажите что можно сделать.
Для пк версии я сделал вот что. Сначала пытался перенастроить одну камеру:
private void Update()
{
if (Screen.width > Screen.height)
{
Camera.main.targetDisplay = 0;
Camera.main.cullingMask = LayerMask.GetMask("UI");
}
else
{
Camera.main.targetDisplay = 1;
Camera.main.cullingMask = LayerMask.GetMask("UI2");
}
text.text = $"{Camera.main.targetDisplay} \n {Camera.main.cullingMask}";
}
Потом вернулся к двум и в том же if делал hcam.enabled = true; vcam.enabled = false; или наоборот
Когда я при запуске уже готовой сборки меняю ориентацию экрана на книжную, в текстовом поле значения изменяются, то есть технически проверка прошла и слой камеры / сама камера поменялись, однако на деле при вертикальной ориентации экрана всё ещё отображается горизонтальный канвас.
P.S. расположение элементов в вертикальной и горизонтальной версиях слишком разное, чтобы просто прикрепить элементы к границам экрана и просто поворачивать этот экран, так что этот вариант не подходит.