Как сделать, так, чтобы при переключении на альбомную ориаентацию в игре, отключалась одна Panel, и запустилась другая? Можно ли со скрипта как нибудь обратиться к ориентации экрана? Я прикрепил созданный скрипт ScreenOrient на элемент Panel. В Update проверил if(Input.deviceOrientation == DevicleOrientation.LandscapeLeft) gameObject.SetActive(false); Но не работает
Здесь два варианта - первый, вы уже описали, но, видимо, реализовали не совсем правильно:
MonoBehaviour есть метод OnRectTransformDimensionsChange - он вызывается, когда меняется размер RectTransform-а, на котором висит класс. Если ваш Canvas верхнего уровня прикреплён к камере через режим Screen Space - Camera, то при изменении поворота экрана он будет изменять свой размер и вызывать это событие. Банальная реализация второго способа.
Скрипт должен висеть на самом верхнем в иерархии Canvas:
private void Start()
{
// Этот вызов для того чтобы на старте правильно сориентировать
OnRectTransformDimensionsChange();
}
private void OnRectTransformDimensionsChange()
{
if (Screen.orientation == ScreenOrientation.LandscapeLeft || Screen.orientation == ScreenOrientation.LandscapeRight)
{
_vertical.SetActive(false);
_horizontal.SetActive(true);
}
else if (Screen.orientation == ScreenOrientation.Portrait || Screen.orientation == ScreenOrientation.Portrait)
{
_vertical.SetActive(true);
_horizontal.SetActive(false);
}
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости