Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 每当我尝试从列表加载模型时引发异常_C#_Xna_Objectdisposedexception_Content Pipeline - Fatal编程技术网

C# 每当我尝试从列表加载模型时引发异常

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 (

无法访问已释放的对象。 对象名称:“基本效果”

每当我试图从列表中加载模型时,就会抛出这个exeption。
以前的方法很有效,但最近失败了,我不知道为什么

下面是我的渲染代码:

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));  
}