我想在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)
答案 0 :(得分:1)
通过Vector3.Lerp使用Vector3旋转很容易出现云台锁定问题,这正是您可能遇到的问题。
通过旋转进行lerp的最佳方法是使用transform.Rotate();
函数。
或者,您可以使用Quaternion.Lerp();
并使用Quaternion.Euler();
创建开始和结束四元数。这将为您提供最可靠的结果,因为Quaterion
轮换比Vector3
更复杂,并且取消了您在Vector3
轮换中可能遇到的任何问题。
编辑:请记得发布代码的完整代码段。 Lerp代表线性插值,它需要一个从0到1的t,其中0是起点,1是终点。许多人使用此功能错误并提出问题。由于我无法看到您的代码,但我认为您这样做是正确的,但我不知道除非我看到实际代码:)