在Unity的游戏视图中,当游戏开始时,它总是在同一点上釉。当比赛开始时,头部旋转为(0,0,0)。
不幸的是,当我编译并推送到我的Android手机时,这种情况不会发生。当比赛开始时,也许球员需要将自己的身体转动180度,因为他必须遵循的路径落后(希望他能转身:如果球员将头转到180度,可能他会死掉)。
顺便说一下,当第二个场景加载时会发生这种情况。第一个场景似乎没问题。当我UnityEngine.SceneManagement.SceneManager.LoadScene ("GameScene");
我试图在调用LoadScene
之前和GameScene的Start
函数末尾添加以下代码:
cardboardHead.GetComponent<Transform> ().rotation = Quaternion.identity;
然而,似乎我们无法在运行时更改该值,因为当我在Unity中在运行时修改它时,它会立即更改它的值。
解决方法可行的方法是以下面的方式更改父旋转:如果头部旋转为156,则头部的父游戏对象将为-156。这应该有效,但它不是一个优雅的解决方案。
答案 0 :(得分:3)
使用Cardboard SDK,您可以执行重定位功能
Cardboard.SDK.Recenter ();
尝试而不是直接修改相机变换。因为你需要headtracker来改变它的方向。
更新:上述代码适用于旧版Google Cardboard。现在它已重命名为Google VR,上面的代码已更改为以下内容:
GvrViewer.Instance.Recenter ();