如何组织XNA内容项目以允许在运行前和运行时编辑游戏脚本

时间:2012-08-09 02:37:21

标签: c# xna

目前在我的XNA解决方案中,我有2个项目,我的主要XNA游戏项目和XNA内容项目。我开始将我的游戏的某些方面暴露给脚本引擎,其主要目的是让我自己能够在不必关闭游戏,重新编译,重新启动的情况下改变行为和数据。

现在,当我创建新版本时,它会在C:\ solution \ project \ bin \ x86 \ Debug目录中创建二进制文件,并将内容项目中的所有数据复制到C:\ solution \ project \ bin \ X86 \调试\内容。我试图解决的问题是在哪里放置我的游戏脚本,以便游戏在运行时可以访问它们,但在运行时之前和期间也可以编辑,而不会在下次使用时被重建/复制过程覆盖。

如果脚本在我的内容项目中并且我在运行时编辑它们,我可以看到加载脚本更改的唯一方法是检查C:\ solution \ project \ bin \ x86 \ Debug \ Scripts并比较它到C:\ solution \ projectContent \ Scripts中的相同脚本文件并加载哪个更新。这似乎是不确定的并且需要硬编码路径。

有更优雅的方式来处理这个问题吗?

1 个答案:

答案 0 :(得分:1)

你甚至无法在Windows Phone或XBox上运行这些路径 - 所以你可能在Windows上询问XNA(如果是,请在你的问题中澄清)。

如果您的文件不需要以任何方式由内容管道处理,我建议您将它们放在Environment.SpecialFolder.ApplicationData标识的公共位置。这个值在XNA框架中有效(虽然我不确定它将在PC以外的平台上指向何处)。

对于您的开发设置,您可以include these files using a wildcardenvironment variables

一个简单的预构建批处理文件可以将这些文件复制到公共位置(如果它们已经不存在) - 那么检查代码的人不需要手动复制这些文件。

希望这有帮助!