C# 如何整体移动Xna中的模型?
我有一个模型,我在搅拌机,其中有单独的网格。当我把它放在一个Xna项目中,并尝试通过矩阵转换来移动模型时,所有单独的网格都朝着不同的方向移动。我的代码基本上分别更新每个网格。是否有更好的代码可以使模型的网格一起移动?如果您将其称为:C# 如何整体移动Xna中的模型?,c#,model,matrix,xna-4.0,blender,C#,Model,Matrix,Xna 4.0,Blender,我有一个模型,我在搅拌机,其中有单独的网格。当我把它放在一个Xna项目中,并尝试通过矩阵转换来移动模型时,所有单独的网格都朝着不同的方向移动。我的代码基本上分别更新每个网格。是否有更好的代码可以使模型的网格一起移动?如果您将其称为: private void DrawModel(Model model, Matrix worldMatrix) { //Matrix array for number of bones Matrix[] modelTr
private void DrawModel(Model model, Matrix worldMatrix)
{
//Matrix array for number of bones
Matrix[] modelTransformations = new Matrix[model.Bones.Count];
//Put bones into matrix array
model.CopyAbsoluteBoneTransformsTo(modelTransformations);
//for every model
foreach (ModelMesh mesh in model.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
//Add default lighting
effect.EnableDefaultLighting();
//Set default postion
effect.World = modelTransformations[mesh.ParentBone.Index] * worldMatrix;
//Set view
effect.View = camera.viewMatrix;
//Set projection
effect.Projection = camera.projectionMatrix;
}
//Draw Model
mesh.Draw();
}
}
然后像这样翻译你输入的世界矩阵:
modelWorld *= Matrix.CreateTranslation(XDir, YDir, ZDir);
你应该没有问题。至少,我是这样做的