将模型相对于其旋转XNA向前移动
本文关键字:移动 XNA 旋转 模型 相对于 | 更新日期: 2024-07-27 09:36:55
如何将模型(在三维空间中)相对于其旋转向前移动?例如:
rotation = new Vector3(0, MathHelper.ToRadians(90), 0);
obj.Move(Vector3.Forward);
移动功能必须将对象向左移动一个单位,向前移动一个单元。我试过了:
Matrix rotation = Matrix.CreateFromYawPitchRoll(rotation.x, rotation.y, 0);
Vector3 translation = Vector3.Transform(Vector3.Forward, rotation);
this.position += translation;
translation = Vector3.Zero;
但出于某种原因,它将模型向上移动。
矢量3分量"rotation.Y"表示您希望偏航(绕Y轴旋转)90度。
Matrix.CreateFromYawPitchRoll()希望将该信息(rotation.Y)作为参数中的第一个。您已将其列为第二个参数。
只需记住将参数按函数中命名的相同顺序放置:偏航、俯仰,然后滚动。你有俯仰,偏航,滚转。