对于我的一生,我无法弄清楚这一点。我花了几个小时弄清楚四元数和欧拉角,但没有设法使我的角色面对相反的方向。到目前为止,这是我尝试过的事情:
Quaternion lookAt = Quaternion.Euler(-transform.rotation.eulerAngles);
Quaternion lookAt = Quaternion.Inverse(transform.rotation.eulerAngles);
gameObject.transform.Rotate(new Vector3(0,180,0)
Quaternion lookAt = Quaternion.Euler(-transform.localEulerAngles)
我认为这很简单,但显然不是。我不知道要使用本地坐标还是世界坐标(我都尝试过)。在上述大多数情况下,角色旋转的数量取决于角色面对的方向。 transform.Rotate
完全不会旋转我的角色。我不知道为什么这么难,而且我在网上找到的大多数解决方案也没有太大帮助。非常感谢您有任何想法。
答案 0 :(得分:0)
显然,您需要将四元数相乘才能获得精确的旋转。不知道为什么其他答案都忽略了这一点。
我最终要做的是lookQuaternion = transform.rotation*Quaternion.AngleAxis(180, Vector3.up);
,使角色在Y轴上面向相反的方向