如何相对于他的旋转向前移动模型(在3D空间中)? 例如:
rotation = new Vector3(0, MathHelper.ToRadians(90), 0);
obj.Move(Vector3.Forward);
函数move必须将对象一个单元向前移动到一个单元的左侧。 我试过了:
Matrix rotation = Matrix.CreateFromYawPitchRoll(rotation.x, rotation.y, 0);
Vector3 translation = Vector3.Transform(Vector3.Forward, rotation);
this.position += translation;
translation = Vector3.Zero;
但出于某种原因,它会推动模型的发展。
答案 0 :(得分:3)
你的vector3组件'rotation.Y'意味着你想要偏航(绕Y轴旋转)90度。
Matrix.CreateFromYawPitchRoll()希望将该信息(rotation.Y)作为参数中的第一个。你把它列为第二个参数。
请记住将params按照它们在函数中命名的顺序放置:Yaw,Pitch,然后Roll。你有它的俯仰,偏航,滚动。