我试图从一个旋转到另一个。另一个轮换使用此
构成 Quaternion qNew = Quaternion.Euler(new Vector3(navigationCanvas.transform.rotation.x, navigationCanvas.transform.rotation.y, camRotationToWatch.transform.rotation.z));
上面给出了我需要lerp的新旋转,这是对的吗?因为它没有做我的意思 而我正在这样哄骗
navigationCanvas.transform.rotation = Quaternion.Lerp(navigationCanvas.transform.rotation, qNew, Time.deltaTime * 2f);
答案 0 :(得分:2)
默认情况下,Unity uses quaternion to express rotation以防止云台锁定,因此transform.rotation
已经是四元数:
Transform.rotation
<强>描述强>
世界空间中变换的旋转存储为四元数。
您必须改为使用eulerAngles
property:
Quaternion qNew = Quaternion.Euler( new Vector3(
navigationCanvas.transform.eulerAngles.x,
navigationCanvas.transform.eulerAngles.y,
camRotationToWatch.transform.eulerAngles.z
));