我目前正在开发一款注定要提交给XBLIG的游戏。
我的问题很简单,我想知道哪种是通过外部XML文件加载数据的“建议”方式。
我至少需要这个开发(在PC上),以便游戏设计师可以使用游戏变量而不需要重建。
在xna3.1中,我使用了xna4.0不再存在的IntermediateSerializer。
我可能会为运输创建一个内容管道扩展,除非当然有人可以提出适用于PC和XBox的惊人答案! :d
谢谢,
答案 0 :(得分:2)
首先,IntermediateSerializer
exist in XNA 4.0!
然而 ,XNA 4.0从针对.NET 2.0框架转变为针对.NET 4.0框架,后者有两种版本。 XNA运行时程序集以紧凑框架为目标,但内容管道程序集以完整框架为目标。您需要进入项目属性并更改目标框架以允许您使用IntermediateSerializer
。
此外,Xbox 360上内容管道 不可用,和 Windows没有安装完整的XNA Game Studio。这意味着您无法在Xbox 360上运行InterpediateSerializer
或在Windows上进行分发(适用于XNA 3.1和4.0)。
因此,如果要在运行时使用它,在开发期间,解决方案是在Windows上为项目添加特定的构建目标。为#ifdef DEVELOPMENT
提供预处理器定义以包装代码,使目标成为(更大的)完整.NET 4.0 Framework,并向Microsoft.Xna.Framework.Content.Pipeline
添加程序集引用(其中IntermediateSerializer
住)。
(我将把条件框架定位和汇编引用作为你研究的东西 - 我很确定它需要手工编辑项目文件。或者你可以只是并行地创建和维护一个新的项目文件。 )
所以剩下的就是你的发行版本中该怎么做的问题,你没有有IntermediateSerializer
?
非常容易:您可以将XML文件拖到内容项目中。默认的Content Pipeline XML导入器会获取您的XML,并为您运行IntermediateSerializer
,创建一个XNB
文件。然后,您可以通过ContentManager
在运行时将该文件作为内容加载。 (see also)
(我不建议在加载代码中粘贴一堆条件,而是建议正常使用此方法(在加载时),然后仅使用IntermediateSerializer
方法“重新加载XML”代码路径。)