0

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

4

1 回答 1

1

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

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

编辑

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

编辑

查看这篇文章,了解有关在运行时加载未处理内容的更多信息:如何在运行时在 XNA 中加载纹理?

于 2012-06-16T20:47:06.137 回答