【问题标题】:MonoGame use types from the same project in XMLMonoGame 在 XML 中使用来自同一项目的类型
【发布时间】:2016-12-08 08:18:01
【问题描述】:

我正在使用 MonoGame,我想使用 XML 为我的一些纹理附加一些元数据。我创建了以下类:

    public class TextureData
    {
        public float FrameWidth;
        public float FrameHeight;
    }

现在我正在尝试在我的内容管道中创建一个 XML 并加载它。我尝试编写以下 XML:

<?xml version="1.0" encoding="utf-8"?>
<XnaContent xmlns:ns="Microsoft.Xna.Framework">

  <Asset Type="TextureData">
    <FrameWidth>0.2</FrameWidth>
    <FrameHeight>0.2</FrameHeight>
  </Asset>

</XnaContent>

并得到以下错误:

error : Importer 'XmlImporter' had unexpected failure!
1>  Microsoft.Xna.Framework.Content.Pipeline.InvalidContentException: Could not resolve type 'TextureData'.

我阅读了一些教程,并且在所有教程中,每当他们使用自定义类型时,他们都会从外部 dll 中获取并引用它。所以我尝试将类移动到外部 dll 并从那里使用它并且它可以工作。但是,在我的原始项目中创建一个完整的类库只是为了从 XML 中引用一个类,感觉非常混乱..

所以我的问题是:是否可以在 XML 内容中使用 MonoGame 项目本身的自定义类型?例如,没有参考的外部 dll?

谢谢!

【问题讨论】:

  • 将一个核心游戏项目拆分成几个一点也不杂乱。我自己的游戏有一个 Engine.csproj,它建立在“什么不是这个游戏独有的?其他游戏可以使用它吗?”的理念之上。我还使用了大约 6 个内容管道扩展,一个 Engine 项目非常有用。
  • @Jarryd 我同意在你的情况下它一点也不混乱,但我正在编写一个作为 dll 提供的 gui lib .. 所以现在不是一个 dll + 内容,而是 2 个 dll + 内容 +需要添加对其中一个 dll 的引用。

标签: c# xna monogame


【解决方案1】:

您可以从源代码编译 MonoGame,但将它与您的 UI 项目放在同一个项目中。也许只是抓住你需要的类型,比如 Vector2 和 Point 等......

【讨论】:

  • 嗨 Jarryd,我的问题特别指出 没有外部 dll,甚至用粗体表示:)。无论如何,我已经从 MG 论坛了解到,由于内容构建过程,这是不可能的。我不能接受你的回答,因为它并没有真正解决问题,也没有添加任何有用的数据。但是,如果您想稍微改进一下,我很乐意接受并投票。
猜你喜欢
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-31
  • 2018-10-20
  • 1970-01-01
  • 2021-10-20
  • 2015-09-29
相关资源
最近更新 更多