【问题标题】:Is it possible to load an external XML file in XNA?是否可以在 XNA 中加载外部 XML 文件?
【发布时间】:2011-07-18 00:28:41
【问题描述】:

在过去的一个月里,我学习了如何在 XNA 中使用 XML 文件,方法是将它们添加到内容文件夹(或 XNA 4 中的项目)并在 LoadContent 方法中加载它们。 我想知道是否可以以同样的方式加载一个外部 XML 文件,一个不在内容项目中的“新”文件。

干杯。

【问题讨论】:

    标签: xml path xna load external


    【解决方案1】:

    您可以使用IntermediateSerializer (MSDN) - 这正是 XNA 在后台使用的。它在Microsoft.Xna.Framework.Content.Pipeline 程序集中。

    非常大的缺点是内容管道程序集仅适用于 XNA Game Studio,而不是 XNA Framework 可再发行组件.因此,任何引用该程序集的代码都只能在安装了 Game Studio 的开发人员机器上运行。

    根据您要执行的操作,这可能是不可接受的 - 您必须使用 XML 序列化的替代方法。或者,如果您正在执行关卡编辑器之类的操作,您可以直接使用内容管道来构建 XNB 文件 - 然后可以分发和动态加载这些文件。 WinForms 2 示例说明了方法。

    另见this blog post

    【讨论】:

    • 谢谢!是否不能通过引用将内容管道程序集附加到项目中,以便在可执行文件旁边制作 dll 的副本?
    • 您这样做没有技术限制。但是,将 DLL 与您的游戏捆绑在一起违反了 XNA Game Studio EULA。您只能分发 XNA Framework 安装程序(它是“可再分发的”)。
    • 天哪。我知道你的名字很熟悉。你在 ExEn 上做了很棒的工作。真的。
    • 关于最终用户许可协议......这太糟糕了。但我想我只需要使用 System.Xml 或其他一些 Xml 库。
    【解决方案2】:

    【讨论】:

    • 感谢您的评论。我知道我可以使用 System.IO、System.Xml 或其他库。但我真正想要的是(可能在 XNA 中)具有与 XNA 提供的完全相同的单行加载方法的东西。
    猜你喜欢
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 2020-05-17
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    相关资源
    最近更新 更多