Quaternion.Euler的行为与我解释的不同

时间:2017-09-22 18:44:27

标签: c# unity3d quaternions

我真的没有问题,只是一个问题。我正在使用C#开发Unity项目。

这是一段完全符合我需要的代码:

Vector3 origPath = (MovingTo - unityObject.transform.position);
origPath = Quaternion.Euler(0, 360 - Angle, 0) * origPath;
path = path * Time.deltaTime * speed;

这是要弄清楚对象到达特定Vector3目标(MovingTo)应该采取的路径。然后它会旋转,因为我以后使用GameObject.Translate。

现在代码改变了:

Vector3 origPath = Quaternion.Euler(0, 360 - Angle, 0) * (MovingTo - unityObject.transform.position);
path = path * Time.deltaTime * speed;

变量origPath在这些行的末尾具有非常不同的值,就好像quaternion.Euler调用以完全不同的方式运行。

我想理解为什么会发生这种情况,因为第二个代码块的行为远非我的需要,我只花了很多时间调试它,直到我找到修复,这是第一个块。我想知道为什么这是一个修复。

0 个答案:

没有答案