Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Unity上的SDK重新居中或重新定向视图_Android_Unity3d_Virtual Reality_Google Cardboard - Fatal编程技术网

Android 使用Unity上的SDK重新居中或重新定向视图

Android 使用Unity上的SDK重新居中或重新定向视图,android,unity3d,virtual-reality,google-cardboard,Android,Unity3d,Virtual Reality,Google Cardboard,在Unity中,CardboardHead脚本被添加到主摄像机中,可以很好地处理所有事情,但我需要能够根据需要“重新居中”视图,目前为止我看到的唯一选择是记录整个场景,似乎这是第一手资料,我在文档中找不到任何内容 使用Oculus Mobile SDK(GearVR),它将是OVRCamera.ResetCameraPositionOrientation(Vector3.one、Vector3.zero、Vector3.up、Vector3.zero);尽管每次打开查看器时,它们都能很好地处理它

在Unity中,CardboardHead脚本被添加到主摄像机中,可以很好地处理所有事情,但我需要能够根据需要“重新居中”视图,目前为止我看到的唯一选择是记录整个场景,似乎这是第一手资料,我在文档中找不到任何内容

使用Oculus Mobile SDK(GearVR),它将是OVRCamera.ResetCameraPositionOrientation(Vector3.one、Vector3.zero、Vector3.up、Vector3.zero);尽管每次打开查看器时,它们都能很好地处理它,因此很少需要它。

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


carboard.SDK.Recenter()应该可以做到这一点

Recenter orientation在carboard.SDK中添加了Recenter()函数,该函数可重置头部跟踪器,使手机的当前航向成为前进方向(+Z轴)


找不到API/SDK的文档,但它位于v0.4.5更新的文档中。

您可以旋转硬纸板干管以指向某个方向

当我想让应用程序以某种方式启动时,这对我来说是有效的。由于启动时如果没有指定目标,CardboardHead会指向Vector3.0,因此我在Start()期间为CardboardMain运行了一个函数,该函数将指向我想要的方向


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

这个问题有点老,但对于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目前似乎工作得不太好,但如果禁用它,您将看到主摄像头的重新居中功能。

这在v0.7.0中用于实现此功能,但由于我已升级到0.9.1,因此不再工作。很奇怪。
#if UNITY_EDITOR
        gvrEditorEmulator.Recenter();
#endif