如何在Unity中使角色面对面?

问题描述 投票:0回答:1

对于我的生活,我无法想象这一个。我花了几个小时搞乱了四元数和欧拉角,但没有设法使我的角色面向相反的方向。这是我到目前为止所做的尝试:

  1. Quaternion lookAt = Quaternion.Euler(-transform.rotation.eulerAngles);
  2. Quaternion lookAt = Quaternion.Inverse(transform.rotation.eulerAngles);
  3. gameObject.transform.Rotate(new Vector3(0,180,0)
  4. Quaternion lookAt = Quaternion.Euler(-transform.localEulerAngles)

我认为这将是微不足道的,但显然不是。我不知道是否使用本地或世界坐标(我试过两者)。在上面的大多数情况下发生的事情是角色旋转的数量取决于它所面对的方向。 transform.Rotate根本不会旋转我的角色。我不知道为什么这么困难,我在网上发现的大多数解决方案都没有太大帮助。真的很感激你的想法。

unity3d game-physics
1个回答
1
投票

好吧终于找到了解决方案。谢谢Loius(https://answers.unity.com/questions/446536/reverse-axis-of-quaternion.html

显然,您需要乘以四元数以获得准确的旋转。不知道为什么其他答案忽略了这一点。

我最终做的是lookQuaternion = transform.rotation*Quaternion.AngleAxis(180, Vector3.up); 让角色在Y轴上面向相反的方向

© www.soinside.com 2019 - 2024. All rights reserved.