使用XNA 4.0,我尝试通过以下方式为不同的游戏屏幕创建多个内容管理器:
ContentManager myManager = new ContentManager(Content.ServiceProvider, Content.RootDirectory);
Content是系统为我提供的原始ContentManager。
然而,它并没有像我预期的那样有效。如果我调用myManager.Unload(),那么加载原始ContentManager的所有内容也会被卸载。就好像这两个人拥有相同的数据一样。
如何将它们分开并卸下一位经理而不影响另一位?
答案 0 :(得分:4)
您发布的代码没有任何问题。我个人使用Game.Services
- 但Content.ServiceProvider
也很好 - 他们都指向完全相同的对象。
错误必须在您的代码中的其他位置。您绝对确定您在每种情况下都使用了正确的内容管理器吗?
您是否尝试在调试器中单步执行代码?并利用“制作对象ID”功能? (在鼠标悬停的监视变量或变量的上下文菜单中。)