Unity 和 Google VR - Cardboard:开始游戏时头部旋转设置为零或始终在同一点上光

Unity and Google VR - Cardboard: Start game with the head rotation set to zero or glazing to the same point always

在Unity的游戏视图中,当游戏开始时,它总是在同一个点上显示。游戏开始时头部的旋转度为(0,0,0)。

不幸的是,当我编译并推送到我的 Android phone 时,这并没有发生。当游戏开始时,也许玩家需要将他的 body 转 180 度,因为他必须遵循的路径在后面(希望他会转动他的 body:如果玩家将他的头转 180 度,可能他会死)。

顺便说一下,当第二个场景加载时会发生这种情况。第一个场景似乎还可以。当我做 UnityEngine.SceneManagement.SceneManager.LoadScene ("GameScene");

时会出现问题

我试图在调用 LoadScene 之前和 GameScene 的 Start 函数结束时添加以下代码:

cardboardHead.GetComponent<Transform> ().rotation = Quaternion.identity;

然而,我们似乎无法在运行时更改该值,因为当我在运行时在 Unity 中修改它时,它会立即改回它原来的值。

一种解决方法是按以下方式改变 parent 旋转:如果头部的旋转是 156,则 parent 游戏 object 的头部会为-156。这应该可行,但这不是一个优雅的解决方案。

使用 Cardboard SDK,您可以使用一个函数来重新居中

Cardboard.SDK.Recenter ();

尝试一下,而不是直接修改相机变换。因为你需要 headtracker 来改变它的方向。

更新:以上代码适用于旧版本的 Google Cardboard。现在它已更名为 Google VR 并且上面的代码已更改为以下内容:

GvrViewer.Instance.Recenter ();