0

我目前正在尝试使用 Oculus Rift 让某些东西飞起来。

唯一的控制是 Oculus 相机。

球员总是在前进,但我想让他旋转、上升和下降。要向上,玩家必须向上看 10° 到 45°,所有方向都相同。

我目前正在使用 Unity,我得到一个关于相机旋转的四元数。

有脚本在做吗?我自己怎么做,或者至少,如何将四元数转换为旋转?

4

1 回答 1

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.

于 2015-01-07T17:14:45.760 回答