【问题标题】:Recenter or Reorient view with Cardboard SDK on Unity在 Unity 上使用 Cardboard SDK 重新定位或重定向视图
【发布时间】:2014-12-17 04:40:46
【问题描述】:

使用 Unity,CardboardHead 脚本被添加到主摄像头,它可以很好地处理一切,但我需要能够按需“重新居中”视图,目前我看到的唯一选择是旋转整个场景似乎这是可以直接解决的问题,但我在文档中找不到任何内容。

使用 Oculus 移动 SDK (GearVR),它将是 OVRCamera.ResetCameraPositionOrientation(Vector3.one, Vector3.zero, Vector3.up, Vector3.zero);尽管每次戴上查看器时他们都能很好地处理它,所以那里很少需要它。

【问题讨论】:

    标签: android unity3d virtual-reality google-cardboard


    【解决方案1】:

    CardboardHead 上有一个“目标”参数,可让您使用另一个游戏对象作为旋转的参考。或者你可以使用一个虚拟的父游戏对象。无论哪种方式,当您想要居中时,您设置此参考对象的旋转,以便 CardboardHead 现在指向前方。将此函数添加到 CardboardHead 上的脚本中(或仅将其添加到该脚本中):

    public void Recenter() {
        Transform reference = target != null ? target : transform.parent;
        if (reference != null) {
            reference.rotation = Quaternion.Inverse(transform.rotation) * reference.rotation;
            // next line is optional -- try it with and without
            reference.rotation = Quaternion.FromToRotation(reference.up, Vector3.up) * reference.rotation;
        }
    }
    

    【讨论】:

      【解决方案2】:

      Cardboard.SDK.Recenter (); 应该可以解决问题。

      重新居中方向 Cardboard.SDK 中添加了Recenter() 函数,该函数重置头部跟踪器,使手机的当前航向变为正向(+Z 轴)。

      找不到 API/SDK 的文档,但它在 v0.4.5 更新的 release notes 中。

      【讨论】:

      • 这曾经在 v0.7.0 中起到作用,但自从我升级到 0.9.1 后它就不再起作用了。很奇怪。
      【解决方案3】:

      您可以旋转 Cardboard Main 以指向某个方向。

      当我希望应用程序以某种方式启动时,这对我有用。如果没有分配目标,CardboardHead 在启动时指向 Vector3.zero,因此我在 Start() 期间为 CardboardMain 运行了一个函数,该函数将指向我想要的方向。

      当然,如果您出于其他原因已经在旋转 CardboardMain,则可以通过创建 CardboardHead 的父级(CardboardMain 的子级)并执行相同的操作来使用相同的方法。

      【讨论】:

        【解决方案4】:

        这个问题有点老了,但是对于 Google VR SDK 1.50+ 你可以做

        transform.eulerAngles = new Vector3(newRot.x, newRot.y, newRot.z);
        UnityEngine.VR.InputTracking.Recenter();
        

        此外,如果您不想感到困惑,您还需要捕获 GvrEditorEmulator 实例并对其进行重新定位。

        #if UNITY_EDITOR
                gvrEditorEmulator.Recenter();
        #endif
        

        虽然目前 GvrEditorEmulator 重新居中似乎效果不佳,但如果禁用它,您会看到主摄像头的重新居中工作。

        【讨论】:

          猜你喜欢
          • 2023-03-13
          • 1970-01-01
          • 2019-10-05
          • 1970-01-01
          • 2014-03-29
          • 1970-01-01
          • 2019-05-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多