我正在使用嵌入式XNA在winform中编写MapEditor。 我最大的问题是每当我尝试使用ContentManager加载任何文件时,它只会读取.XNB文件。
我想读一个像这样的效果文件:
effect = contentManager.Load<Effect>("Effect2");
但后来我收到“Effect2.xnb不存在”的错误。 如果我添加“Effect2.fx”它仍然给我错误消息“Effect2.fx.xnb不存在”:\
我不知道该怎么做。 我通过设置内容属性看到了解决方案。但是我不能在这种情况下设置这些属性,因为它是一个winform应用程序。
有没有人有什么好主意?
修改<!/强>
找到解决方案!
我通过编写一些辅助方法来动态加载,从此示例中实现了ContentBuilder:http://create.msdn.com/en-US/education/catalog/sample/winforms_series_2
答案 0 :(得分:1)
您必须添加XNA内容项目,并将您的内容包含在该项目中。所有这些文件都将被编译/处理为单独的XNB文件,您可以加载这些文件。只需确保在WinForms项目中引用该项目。
同样的规则适用于游戏项目:它仍然需要一个附带的内容项目。
<强> 修改 强>:
啊,对......你想动态加载它们。为此,您需要确保尝试使用地图编辑器的任何计算机都安装了XNA开发框架。然后,您需要在使用ContentManager加载文件之前手动处理文件...不完全确定如何执行此操作。
<强> 修改 强>:
请查看这篇文章,了解有关在运行时加载未处理内容的更多信息:How do I load a texture in XNA at runtime?