Ориентация экрана Unity3d - PullRequest
0 голосов
/ 26 января 2019

я пытаюсь внести изменения в мое прямое преобразование, когда экран андроида становится портретным или альбомным, но код просто читает портретное вращение экрана, другой никогда не работает. я не знаю почему.

    if (Screen.orientation == ScreenOrientation.Portrait)
    {
        rectTransform.anchoredPosition = new Vector2(0, 50);
        rectTransform.sizeDelta = new Vector2(800, 100);
    }

    if(Screen.orientation == ScreenOrientation.Landscape)
    {
        rectTransform.anchoredPosition = new Vector2(0, 33);
        rectTransform.sizeDelta = new Vector2(800, 75);
    }
}

}

1 Ответ

0 голосов
/ 26 января 2019

Используемый вами API (Screen.orientation) предназначен для установки различных режимов ориентации.Если вы хотите прочитать текущее значение, вам нужно Input.deviceOrientation и проверить объект DeviceOrientation, который он возвращает:

if (Input.deviceOrientation == DeviceOrientation.Portrait ||
    Input.deviceOrientation == DeviceOrientation.PortraitUpsideDown)
{
}
else if (Input.deviceOrientation == DeviceOrientation.LandscapeLeft ||
    Input.deviceOrientation == DeviceOrientation.LandscapeRight)
{
}

Кроме того, чтобы исключить это (на всякий случай): убедитесь, что в инспекторе ProjectSettings> Player с выбранным Android в разделе " Resolution and Presentation " убедитесь, что ваше приложениеразрешение устройству обрабатывать повороты с параметром « Ориентация по умолчанию », установленным в « Автоповорот » и « Разрешенные ориентации для автоповорота », содержит то, что вы хотитек.

...