Vector3 Lerp旋转

时间:2016-04-25 14:15:35

标签: vector unity3d rotation z-axis

我想在Unity 3D中进行Vector3旋转。但是,旋转轴不能正确旋转。这是因为,我在x和y的同时旋转两个轴。我必须分开两次轮换。我能做什么?谢谢你的帮助。

Vector3 start = new Vector3(0,0,0) Vector3 target = new Vector3(0,0,0) transform.localEulerAngles = Vector3.Lerp(start,target,time)

1 个答案:

答案 0 :(得分:1)

通过Vector3.Lerp使用Vector3旋转很容易出现云台锁定问题,这正是您可能遇到的问题。

通过旋转进行lerp的最佳方法是使用transform.Rotate();函数。

或者,您可以使用Quaternion.Lerp();并使用Quaternion.Euler();创建开始和结束四元数。这将为您提供最可靠的结果,因为Quaterion轮换比Vector3更复杂,并且取消了您在Vector3轮换中可能遇到的任何问题。

编辑:请记得发布代码的完整代码段。 Lerp代表线性插值,它需要一个从0到1的t,其中0是起点,1是终点。许多人使用此功能错误并提出问题。由于我无法看到您的代码,但我认为您这样做是正确的,但我不知道除非我看到实际代码:)