使用XNA 4.0,我试图通过以下方式为不同的游戏屏幕创建多个内容管理器:
ContentManager myManager = new ContentManager(Content.ServiceProvider, Content.RootDirectory);
Content是系统为我提供的原始ContentManager。
然而,结果并没有如我所料。如果我调用myManager.Unload(),那么用原始ContentManager加载的所有内容也会被卸载。就好像两人持有相同的数据。
我怎样才能把他们分开,让一个经理的离职不会影响另一个经理?
您发布的代码没有任何问题。就我个人而言,我使用Game.Services
,但Content.ServiceProvider
也很好,它们都指向完全相同的对象。
错误一定在代码的其他地方。您是否确信在每种情况下都使用了正确的内容管理器?
您是否尝试过在调试器中逐步执行代码?使用"生成对象ID"功能?(在监视变量或鼠标悬停的变量的上下文菜单中。)