【问题标题】:Vector3 Lerp RotationVector3 Lerp 旋转
【发布时间】:2016-04-25 14:15:35
【问题描述】:

我想在 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)

【问题讨论】:

  • 请发布您的代码的相关sn-p以及您已经尝试过的内容。
  • Vector3 start = new Vector3(0,0,0); Vector3 目标 = 新 Vector3(x,y,z); transform.localEulerAngles = Vector3.Lerp(start,target,time);
  • 请编辑您的问题以包含附加代码。

标签: vector unity3d rotation z-axis


【解决方案1】:

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

通过轮换 lerp 的最佳方法是使用 transform.Rotate(); 函数。

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

编辑:请记住发布您的代码的整个 sn-ps。 Lerp 代表线性插值,它需要一个从 0 到 1 的 t,其中 0 是起点,1 是终点。许多人错误地使用此功能并提出问题。由于我看不到您的代码,但是我认为您正确执行了此操作,但除非我看到实际代码,否则我不知道:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多