2016-11-23 171 views
0

我正在使用MonoGame,我想使用XML爲我的一些紋理添加一些元數據。我創建了以下類: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中的一個類而感到非常混亂..

所以我的問題是:是否可以使用MonoGame項目本身的自定義類型內容?例如沒有外部DLL的參考?

謝謝!

+1

將一箇中心遊戲項目分成幾個並不是一團糟。我自己的遊戲有一個Engine.csproj,它建立在「這個遊戲不獨有的東西?另一個遊戲可以使用它?」的基礎上。 我也使用了大約6個內容管道擴展,一個Engine項目非常有用。 – Jarryd

+0

@Jarryd我同意在你的情況下它不是混亂的,但我正在寫一個GUI作爲一個dll ..所以現在,而不是一個dll +內容它的2 dll +內容+需要添加引用其中之一dll。 –

回答

0

您可以從源代碼編譯MonoGame,但將它與UI項目放在同一個項目中。也許只是抓住你需要的類型,如Vector2和Point等......

+0

嗨Jarryd,我的問題具體狀態**沒有外部dll **,甚至在黑體:)。無論如何,我已經從MG論壇瞭解到,由於內容構建過程,它是不可能的。我無法接受你的答案,因爲它沒有真正解決這個問題,也沒有添加任何有用的數據。但如果你想稍微改進一下,我會很樂意接受和讚揚。 –