2011-12-15 73 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")