无法访问已处置的对象。对象名称:“基本效果”。
每当我尝试从列表中加载模型时,都会引发此异常。该方法曾经有效,但最近失败了,我不知道为什么。
下面是我的渲染代码:
public void RenderModel(Model m, Vector3 ModelPosition, float rotY = 0, float rotX = 0, float rotZ = 0, bool lit = true, bool collision = false)
{
if (m != null)
{
Matrix[] transforms = new Matrix[m.Bones.Count];
m.CopyAbsoluteBoneTransformsTo(transforms);
float rotationZ = rotZ * (float)(Math.PI / 180);
float rotationY = rotY * (float)(Math.PI / 180);
float rotationX = rotX * (float)(Math.PI / 180);
foreach (ModelMesh mesh in m.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
if (lit == true)
{
//effect.EnableDefaultLighting();
}
effect.World = transforms[mesh.ParentBone.Index] *
Matrix.CreateRotationY(rotationY) *
Matrix.CreateRotationX(rotationX) *
Matrix.CreateRotationZ(rotationZ) *
Matrix.CreateTranslation(ModelPosition);
effect.View = view;
effect.Projection = proj;
}
mesh.Draw();
}
}
}
然后是我的列表代码(路径是模型的路径)
public void AddModel(string Path)
{
Model newModel;
newModel = Content.Load<Model>(Path);
renderModels.Add(newModel);
}
最后是 Draw 代码,放入 draw 方法。
foreach (Model m in renderModels)
{
camera.RenderModel(m, new Vector3(0,0,0));
}
澄清一下,我需要这个用于我的小团队一直在开发的游戏的关卡编辑器。任何帮助深表感谢。