我正在为Oculus go开发,我正在制作一个类似跳伞的游戏,玩家用头部控制角色的悬停。我创建了一个空的游戏对象,并将ovr摄像机装备放在里面来移动它,然后我使用camera.main.transform.rotation
来旋转Oculus,并将角色移动到玩家正在看的方向。例如,我打印camera.main.transform.rotation
并得到 4 个值,从 -1 到 0 最后到 1,我为获得跟踪所做的是
if(camera.main.transform.rotation.x>0)
{
//move the player up
}
想象一下,如果我抬头看时,oculus go 打印的值从 0 到 1camera.main.transform.rotation.x
当我得到apk时,它很好,但有时轴是反转的,我必须重新启动oculus去解决这个问题。有谁知道为什么会发生这种情况,以及我做错了什么?
我在 z 轴控件方面遇到了类似的问题。我正在为Oculus go做赛车游戏,想用LocalControllerRotation控制汽车的方向。
事实上,当你在全局空间中将眼球旋转超过180 °
时,就会发生反转。
(0° = LocalControllerRotation.w = 1f, 180° = LocalControllerRotation.w = -1f)
问题在于,即使在视图重置后,Oculus 的全局值也没有改变。Oculus脚本重新定向了所有控制器和相机,但值没有。由于我的脚本通过访问值来工作,因此结果被颠倒了。
我的解决方案是检查LocalControllerRotation.w
值(也应该适用于相机方向(,然后更改输入