我目前正在開發一款註定要提交給XBLIG的遊戲。什麼是「建議」的方式來將外部數據加載到XNA4.0遊戲?
我的問題很簡單,我想知道哪個「建議」的方式來通過外部XML文件加載數據。
我至少需要這個開發(在電腦上),這樣遊戲設計師可以在不需要重建的情況下玩遊戲變量。
在xna3.1中,我使用了不再適用於xna4.0的IntermediateSerializer。
我可能會創建一個用於裝運的內容管道擴展,除非有人可以提出一個在PC和XBox上都可以使用的驚人答案! :d
感謝,
我目前正在開發一款註定要提交給XBLIG的遊戲。什麼是「建議」的方式來將外部數據加載到XNA4.0遊戲?
我的問題很簡單,我想知道哪個「建議」的方式來通過外部XML文件加載數據。
我至少需要這個開發(在電腦上),這樣遊戲設計師可以在不需要重建的情況下玩遊戲變量。
在xna3.1中,我使用了不再適用於xna4.0的IntermediateSerializer。
我可能會創建一個用於裝運的內容管道擴展,除非有人可以提出一個在PC和XBox上都可以使用的驚人答案! :d
感謝,
嗯,首先,IntermediateSerializer
確實exist in XNA 4.0!
然而,XNA 4.0從面向.NET 2.0框架靶向.NET 4.0框架,它有兩種形式改變。 XNA運行時程序集針對的是緊湊框架,但內容管道程序集針對整個框架。您需要進入您的項目屬性並更改目標框架以允許您使用IntermediateSerializer
。
此外,內容管道是在Xbox 360上,不可和既不是它適用於Windows,而不安裝了完整的XNA遊戲工作室。這意味着您在Xbox 360 或上運行時無法使用InterpediateSerializer
在Windows上進行發佈(適用於XNA 3.1和4.0)。
所以如果你想在運行時使用它,在開發過程中,解決方案是在Windows上爲你的項目添加一個特定的開發目標。給它一個#ifdef DEVELOPMENT
的預處理器定義來包裝你的代碼,使目標(更龐大)完整的.NET 4.0框架,並添加一個程序集引用Microsoft.Xna.Framework.Content.Pipeline
(其中IntermediateSerializer
住)。我會留下計算出條件框架目標和程序集引用作爲你研究的東西 - 我很確定它需要手動編輯項目文件,或者你可以創建並維護一個新的項目文件並行)
所以所有的葉子都是在你的發行版本中做什麼的問題,你在哪裏不要有IntermediateSerializer
?
那就是非常容易:你可以拖動你的XML文件到你的內容項目中。默認的內容管道XML導入器將採用您的XML,通過IntermediateSerializer
爲您運行,創建XNB
文件。然後,您可以通過ContentManager
在運行時將該文件作爲內容加載。(see also)
(而不是在加載代碼中粘貼一堆條件,我建議通常在加載時使用此方法,然後僅使用IntermediateSerializer
方法來「重新加載XML」代碼路徑。)
可能想問一下:http://gamedev.stackexchange.com/ :) – 2011-05-25 16:02:02
我認爲內容管道僅在安裝遊戲工作室時可用;只是要注意的事情。 – 2011-05-25 21:44:14