Winform嵌入式XNA contentmanager仅识别XNB

时间:2012-06-16 20:44:16

标签: c# winforms xna shader

我正在使用嵌入式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

1 个答案:

答案 0 :(得分:1)

您必须添加XNA内容项目,并将您的内容包含在该项目中。所有这些文件都将被编译/处理为单独的XNB文件,您可以加载这些文件。只需确保在WinForms项目中引用该项目。

同样的规则适用于游戏项目:它仍然需要一个附带的内容项目。

<强> 修改

啊,对......你想动态加载它们。为此,您需要确保尝试使用地图编辑器的任何计算机都安装了XNA开发框架。然后,您需要在使用ContentManager加载文件之前手动处理文件...不完全确定如何执行此操作。

<强> 修改

请查看这篇文章,了解有关在运行时加载未处理内容的更多信息:How do I load a texture in XNA at runtime?