2

现在在我的 XNA 解决方案中,我有 2 个项目,我的主要 XNA 游戏项目和一个 XNA 内容项目。我开始将游戏的某些方面暴露给脚本引擎,主要目的是让自己能够更改行为和数据,而无需关闭游戏、重新编译、重新启动。

现在,当我进行新构建时,它会在 C:\solution\project\bin\x86\Debug 目录中创建二进制文件,并将内容项目中的所有数据复制到 C:\solution\project\bin\x86\Debug \内容。我要解决的问题是把我的游戏脚本放在哪里,这样它们既可以在运行时被游戏访问,又可以在运行之前和运行期间进行编辑,并且不会冒更改被下次重建/复制过程覆盖的风险。

如果脚本在我的内容项目中并且我在运行时对其进行了编辑,我可以看到加载脚本更改的唯一方法是检查 C:\solution\project\bin\x86\Debug\Scripts 并将其与C:\solution\projectContent\Scripts 中的相同脚本文件并加载较新的脚本文件。这看起来很可疑,需要硬编码路径。

有没有更优雅的方法来处理这个?

4

1 回答 1

1

您甚至无法在 Windows Phone 或 XBox 上运行时获得这些路径 - 所以您大概是在询问 Windows 上的 XNA(如果是,请在您的问题中澄清这一点)。

如果您的文件不需要以任何方式由 Content Pipeline 处理,我建议您将它们放在由Environment.SpecialFolder.ApplicationData标识的公共位置。该值适用于 XNA 框架(尽管我不确定它在 PC 以外的平台上指向何处)。

至于您的开发设置,您可以使用通配符环境变量包含这些文件。

如果这些文件不存在,一个简单的预构建批处理文件可以将这些文件复制到公共位置 - 这样检查您的代码的人就不需要手动复制这些文件。

希望这可以帮助!

于 2012-08-09T15:39:07.837 回答