我目前正试图用Oculus Rift制作一些东西。
唯一的控制是Oculus相机。
玩家总是向前移动,但我想允许他旋转,上升和下降。要上升,玩家必须向上看10°到45°,所有方向都一样。
我目前正在使用Unity,我得到了关于相机旋转的四元数。
有没有脚本在做什么?我怎样才能自己完成,或者至少如何将四元数转换为旋转?
答案 0 :(得分:0)
transform.forward
都会为您提供脚本附加到的对象的前进方向。如果它在相机上,它将是玩家正在看的方向。
只使用相机的前进方向和玩家前进的前进方向,您就可以计算出玩家轮换所需的信息。
Vector3.Angle(transform.forward, cameraObject.transform.forward)
将为您提供两个前进方向之间的角度。
Vector3.Cross(transform.forward, cameraObject.transform.forward)
将为您提供旋转轴。
您可以检查角度是否在所需范围内,然后使用
transform.Rotate(Vector3.Cross(transform.forward, cameraObject.transform.forward), rotationSpeed * Time.deltaTime)
执行轮换。如果旋转方向与您想要的方向相反,则可能需要将两个参数的顺序切换为Vector3.Cross
。