2011-12-15 117 views
2

我需要从Xna游戏中的DLL加载一些.Xnb文件。为此,有一个“ResourceContentManager”,它在构造函数中使用“ResourceManager”。那么如何将这些文件作为嵌入式资源添加到DLL并初始化一个ResourceManager?下面的代码didnt工作空间(namespace是“混合氧化物燃料”)C#从DLL(ResourceManager)加载资源

ResourceManager resourceManager = new ResourceManager("Mox", Assembly.GetExecutingAssembly()); 
Stream s = resourceManager.GetStream("Shader"); 
if(s == 0) 
    throw new Exception(); 

我加资源“Shader.fx”与“添加 - >现有”,然后生成设置为嵌入的资源和“复制总是” .. 。这会抛出一个异常,所以我知道它没有正确加载......任何建议?

+0

是否有某些原因导致您不想使用内容管道? – 2011-12-15 16:39:04

回答

2

我在gamedev.stackexchange.com问了一个类似的问题。答案也可能对你有所帮助,如下所示:

除了Russell's之外,我还有另一个解决方案,它允许你使用内容管理器并允许你嵌入XNA支持的所有类型的内容。

XNA通过资源而不是内容项目支持ContentManager。要使用它,请执行以下操作。当然,您需要在某个时候传递游戏服务的参考。

ResourceContentManager Content = new ResourceContentManager(game.Services, Resource1.ResourceManager); 

使用this编译着色器或任何一个XNB。

将任何和所有XNB添加到您的资源。他们只是像平常一样加载你的内容。

Content.Load<Texture2D>(".\\assetName")