我现在正在为一个我是唯一程序员的项目开发游戏引擎。鉴于我的艺术家和设计师对 Visual Studio 或 XNA 的怪癖不是很熟悉,我正在为他们组合一个工具来添加动画、创建关卡等。当然,其中大部分都相当简单。标准代码生成、图像查看等。但是,我不确定如何将新的 Texture2D 添加到项目的内容引用中。
有没有一种我可以调用的方法,它可以获取文件位置并将其引用添加到 XNA 后端?还是我需要手动查看,找到所有各种硬编码的引用,然后自己完成工作?
您可以像这样编辑 contentproj 并在正确的ItemGroup中添加行
<Compile Include="..\Assets\**\*.png"/>
<Compile Include="..\Assets\**\*.jpg"/>
这将在构建时递归地将所有与描述匹配的文件包含到项目中。请注意,您也可以添加特定文件夹以进行查看。例如:
<Compile Include="..\Assets\textures\*.png"/>
将包含“..\Assets\textures”目录中的所有 PNG。
没有将资源添加到项目内容引用的方法。如果您愿意,则必须编辑维护附加资源列表的 .csproj 项目文件。然而,这是一个非常丑陋的黑客,所以我不建议你这样做。
最好的办法是在运行时使用 microsoft.xna.framework.content.pipeline 编译您的资源。而不是将它们添加到您的内容项目中。
有关如何使用内容管道在运行时编译资源的更多信息,请参阅http://msdn.microsoft.com/en-us/library/bb447745%28v=XNAGameStudio.40%29.aspx
此示例显示了如何执行此操作:http: //xbox.create.msdn.com/en-US/education/catalog/sample/winforms_series_2