如何防止8th Wall XR在Unity中更改默认方向?

时间:2018-09-23 10:59:56

标签: unity3d 8thwall-xr

每次构建时,它都会变回纵向。 我找不到在哪里禁用此自动更改。 有可能吗?

1 个答案:

答案 0 :(得分:0)

进入“播放器设置”,将方向设置为“自动旋转”以外的任何其他位置,并且不会更改。

您还可以通过编程方式更改方向。加载AR场景之前,只需确保将其设置为固定方向即可。例如,如果要在非AR场景中启用自动旋转,可以设置Screen.orientation = ScreenOrientation.AutoRotation,然后在加载AR场景之前,只需将其设置回Portrait或Landscape。 / p>

如果想花哨的话,还可以在用户按下用于启动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);
  }