Как я могу предотвратить изменение ориентации по умолчанию в Unity на 8th Wall XR?
Каждый раз, когда я строю, он меняется обратно на Портрет. Я не могу найти, где отключить это автоматическое изменение. Можно ли это сделать?
1 ответ
Зайдите в настройки проигрывателя, установите ориентацию на что угодно, кроме автоповорота, и оно не изменится.
Вы также можете изменить ориентацию программно. Просто убедитесь, что он установлен обратно в фиксированную ориентацию, прежде чем загружать сцену AR. Например, если вы хотите, чтобы автоповорот был включен в ваших не-AR сценах, вы можете установить Screen.orientation = ScreenOrientation.AutoRotation, а затем перед загрузкой вашей AR-сцены просто установить его обратно в книжную или альбомную ориентацию.
Если вы хотите получить фантазию, вы также можете автоматически определить ориентацию устройства в тот момент, когда пользователь нажимает любую кнопку, которая используется для запуска сцены AR, сначала проверив Input.deviceOrientation, а затем установив в этом значение Screen.orientation.
Вот пример - функция Run() запускает вашу сцену (после первой проверки ориентации устройства и установки ориентации экрана на основании этого):
void Run(String scene) {
// Lock orientation to current device orientation prior to loading AR scene
switch (Input.deviceOrientation) {
case DeviceOrientation.Portrait:
Screen.orientation = ScreenOrientation.Portrait;
break;
case DeviceOrientation.PortraitUpsideDown:
Screen.orientation = ScreenOrientation.PortraitUpsideDown;
break;;
case DeviceOrientation.LandscapeLeft:
Screen.orientation = ScreenOrientation.LandscapeLeft;
break;;
case DeviceOrientation.LandscapeRight:
Screen.orientation = ScreenOrientation.LandscapeRight;
break;;
default:
// if Unknown, just set to Portrait
Screen.orientation = ScreenOrientation.Portrait;
break;
}
SceneManager.LoadScene(scene);
}