使用 XNA 4.0,我尝试通过以下方式为不同的游戏屏幕创建多个内容管理器:
ContentManager myManager = new ContentManager(Content.ServiceProvider, Content.RootDirectory);
Content 是系统为我提供的原始 ContentManager。
然而,它并没有像我预期的那样奏效。如果我调用 myManager.Unload() ,那么所有用原始 ContentManager 加载的东西也会被卸载。就好像两者持有相同的数据一样。
我怎样才能将它们分开并使卸载一名经理不影响另一名经理?
最佳答案
您发布的代码没有任何问题。我个人使用 Game.Services
- 但 Content.ServiceProvider
也很好 - 它们都指向完全相同的对象。
该错误必须在您的代码中的其他地方。您确定在每种情况下都使用正确的内容管理器吗?
您是否尝试过在调试器中单步调试代码?并利用“Make Object ID”功能? (在监视变量或鼠标悬停的变量的上下文菜单中。)
关于c# - XNA 如何创建单独的 ContentManager?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14785199/