Вопрос по ориентации экрана и UI

185
06 февраля 2019, 17:00

Как сделать, так, чтобы при переключении на альбомную ориаентацию в игре, отключалась одна Panel, и запустилась другая? Можно ли со скрипта как нибудь обратиться к ориентации экрана? Я прикрепил созданный скрипт ScreenOrient на элемент Panel. В Update проверил if(Input.deviceOrientation == DevicleOrientation.LandscapeLeft) gameObject.SetActive(false); Но не работает

Answer 1

Здесь два варианта - первый, вы уже описали, но, видимо, реализовали не совсем правильно:

  1. В Update проверять текущую ориентацию и переключать панели при её изменении
  2. У 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);
    }
}
READ ALSO
confirm() в yii2 выполняет действие если нажать отмена

confirm() в yii2 выполняет действие если нажать отмена

Я повесил на кнопку <button type="submit" class="btn btn-primary btn-group-justified" id="save" onclick="confirm('Вы уверены что хотите сохранить?')">Сохранить</button>

163
Где держать бизнес-логику приложения?

Где держать бизнес-логику приложения?

Только начал изучение шаблона MVC и сразу столкнулся с проблемой его понятияПеречитал достаточно статей, но так и не нашел единого подхода

153
Проверка значений массива при autocomplete

Проверка значений массива при autocomplete

Есть такой обработчик autocomplete:

128