四元数,如何缓慢旋转物体?
Quaternion, How to rotate object slowly?
我使用Unity 5.3.4和Oculus VR,在VR环境下实现了一个应用。
我想使用 Quaternion
缓慢旋转一个对象。例如,当我将头向右转180度时,MainCamera会转90度。
在Unity中,自动计算Oculus-VR的跟踪输入和return到Quaternion
数据。
void Update()
{
transform.localRotation = UnityEngine.VR.InputTracking.GetLocalRotation(UnityEngine.VR.VRNode.CenterEye);;
}
所以我将使用这个 Quaternion
旋转相机。但是我不知道怎么慢慢旋转。
我尝试计算算术运算,例如乘法,除法,到Quaternion
。但是没用
如何计算Quaternion
?
试试这个
Quaternion euler = new Quaternion();
euler.eulerAngles = new Vector3(0,HeadRotation,0);
Camera.main.transform.Rotate(euler.eulerAngles);
只需使用:
transform.localRotation =Quaternion.Lerp( transform.localRotation, UnityEngine.VR.InputTracking.GetLocalRotation(UnityEngine.VR.VRNode.CenterEye), Time.deltaTime);
我使用Unity 5.3.4和Oculus VR,在VR环境下实现了一个应用。
我想使用 Quaternion
缓慢旋转一个对象。例如,当我将头向右转180度时,MainCamera会转90度。
在Unity中,自动计算Oculus-VR的跟踪输入和return到Quaternion
数据。
void Update()
{
transform.localRotation = UnityEngine.VR.InputTracking.GetLocalRotation(UnityEngine.VR.VRNode.CenterEye);;
}
所以我将使用这个 Quaternion
旋转相机。但是我不知道怎么慢慢旋转。
我尝试计算算术运算,例如乘法,除法,到Quaternion
。但是没用
如何计算Quaternion
?
试试这个
Quaternion euler = new Quaternion();
euler.eulerAngles = new Vector3(0,HeadRotation,0);
Camera.main.transform.Rotate(euler.eulerAngles);
只需使用:
transform.localRotation =Quaternion.Lerp( transform.localRotation, UnityEngine.VR.InputTracking.GetLocalRotation(UnityEngine.VR.VRNode.CenterEye), Time.deltaTime);