使用 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/

10-13 04:02