我真的没有问题,只是一个问题。我正在使用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调用以完全不同的方式运行。
我想理解为什么会发生这种情况,因为第二个代码块的行为远非我的需要,我只花了很多时间调试它,直到我找到修复,这是第一个块。我想知道为什么这是一个修复。