gpt4 book ai didi

C# 从 DLL 加载资源 (ResourceManager)

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:44 25 4
gpt4 key购买 nike

我需要从 Xna 游戏中的 DLL 加载一些 .Xnb 文件。为此,有一个“ResourceContentManager”,它在构造函数中采用“ResourceManager”。那么如何将文件作为Embedded Resources添加到DLL中并初始化一个ResourceManager呢?以下代码无效(命名空间为“Mox”)

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

我使用“Add->Existing”添加资源“Shader.fx”,然后将 Build 设置为 Embedded Resource 和“copy always”...这会引发异常,所以我知道它没有正确加载...任何有什么建议吗?

最佳答案

我在 gamedev.stackexchange.com 上问过类似的问题.答案也可能对您有所帮助,请参见下文:

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

XNA 通过资源而非内容项目支持 ContentManager。要使用它,请执行以下操作。当然,您有时需要传递游戏服务的引用。

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

使用this将着色器或任何东西编译成 xnb。

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

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

关于C# 从 DLL 加载资源 (ResourceManager),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8523411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com