如何防止 8th Wall XR 更改我在 Unity 中的默认方向?
How can I prevent 8th Wall XR from changing my default orientation in Unity?
每次构建时,它都会变回纵向。
我找不到在哪里禁用此自动更改。
可以吗?
进入播放器设置,将方向设置为自动旋转以外的任何方向,它不会改变。
您还可以通过编程方式更改方向。只需确保在加载 AR 场景之前将其设置回固定方向即可。例如,如果您想在非 AR 场景中启用自动旋转,您可以设置 Screen.orientation = ScreenOrientation.AutoRotation,然后在加载 AR 场景之前,只需将其设置回纵向或横向。
如果你想花哨一点,你还可以在用户按下用于启动 AR 场景的任何按钮时自动检测设备的方向,方法是首先检查 Input.deviceOrientation 然后设置Screen.orientation 到那个。
这是一个示例 - 运行() 函数启动您的场景(首先检查设备方向并根据该方向设置屏幕方向):
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);
}
每次构建时,它都会变回纵向。 我找不到在哪里禁用此自动更改。 可以吗?
进入播放器设置,将方向设置为自动旋转以外的任何方向,它不会改变。
您还可以通过编程方式更改方向。只需确保在加载 AR 场景之前将其设置回固定方向即可。例如,如果您想在非 AR 场景中启用自动旋转,您可以设置 Screen.orientation = ScreenOrientation.AutoRotation,然后在加载 AR 场景之前,只需将其设置回纵向或横向。
如果你想花哨一点,你还可以在用户按下用于启动 AR 场景的任何按钮时自动检测设备的方向,方法是首先检查 Input.deviceOrientation 然后设置Screen.orientation 到那个。
这是一个示例 - 运行() 函数启动您的场景(首先检查设备方向并根据该方向设置屏幕方向):
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);
}