C# 每当我尝试从列表加载模型时引发异常
无法访问已释放的对象。 对象名称:“基本效果” 每当我试图从列表中加载模型时,就会抛出这个exeption。C# 每当我尝试从列表加载模型时引发异常,c#,xna,objectdisposedexception,content-pipeline,C#,Xna,Objectdisposedexception,Content Pipeline,无法访问已释放的对象。 对象名称:“基本效果” 每当我试图从列表中加载模型时,就会抛出这个exeption。 以前的方法很有效,但最近失败了,我不知道为什么 下面是我的渲染代码: public void RenderModel(Model m, Vector3 ModelPosition, float rotY = 0, float rotX = 0, float rotZ = 0, bool lit = true, bool collision = false) { if (
以前的方法很有效,但最近失败了,我不知道为什么 下面是我的渲染代码:
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();
}
}
}
然后是我的列表代码(路径是模型的路径)
只是为了澄清一下,我需要一个游戏的水平编辑我的小团队一直在工作。非常感谢您的任何帮助。考虑一下。它可能会帮助您“以前有效但最近失败的方法”,您做了哪些更改?@DmitryDovgopoly感谢链接,但游戏方法中没有调用,加载内容时graphics.IsDisposed为false,很遗憾,这并不能解决问题。@pincknerman我添加了一个content.Unload调用,当调用该方法时,该调用允许我在从列表中重新加载内容之前更改content rootdirectory。我希望这有帮助。
public void AddModel(string Path)
{
Model newModel;
newModel = Content.Load<Model>(Path);
renderModels.Add(newModel);
}
foreach (Model m in renderModels)
{
camera.RenderModel(m, new Vector3(0,0,0));
}