Unity和谷歌VR - 纸板:开始游戏,头部旋转设置为零或始终上釉到同一点

时间:2016-06-16 18:56:57

标签: unity3d camera rotation google-cardboard google-vr

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

不幸的是,当我编译并推送到我的Android手机时,这种情况不会发生。当比赛开始时,也许球员需要将自己的身体转动180度,因为他必须遵循的路径落后(希望他能转身:如果球员将头转到180度,可能他会死掉)。

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

时会出现问题

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

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

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

解决方法可行的方法是以下面的方式更改父旋转:如果头部旋转为156,则头部的父游戏对象将为-156。这应该有效,但它不是一个优雅的解决方案。

1 个答案:

答案 0 :(得分:3)

使用Cardboard SDK,您可以执行重定位功能

Cardboard.SDK.Recenter ();

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

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

GvrViewer.Instance.Recenter ();