2013-05-16 24 views
0

我使用M.C.的「XNA 3D Primer」中的代碼。 Nero來自Wrox。我的代碼有問題的「第8章」,第31頁。我有自己的變量robotAni其中robotAni聲明型MeshAnimationInfo的(MeshAnimationInfo一類Pipeline.Content)。Pipeline.Conte中的NullReferenceException錯誤

MeshAnimationInfo robotAni; 
    Matrix[] robotTransforms; 

LoadContent的代碼是:

protected override void LoadContent() 
    { 
     robot = Content.Load<Model>("Robot"); 

     robotAni = robot.Tag as MeshAnimationInfo; 
     robotTransforms = new Matrix[robotAni.BoneTransforms.Count]; 
    } 

在我的文件中的代碼是從書的代碼完全一致的。我在最後一行出現以下錯誤:

的NullReferenceException是unhandeld

,這是完美的,只要權robotAni,在上面的線,是空的。那麼,你能幫我解決這個錯誤嗎? 謝謝

回答

0

正如你所注意到的robot.Tag是空的。因爲你的機器人安妮也是空的。

如果你想知道爲什麼你的標籤是空pelease檢查this response by Nick Gravelyn,上面寫着:

您是否正確使用的東西填充Model.Tag財產進口商或處理器?默認情況下(使用默認的模型導入器和處理器)沒有東西被放入標籤屬性中。

正如你在this stackoverflow thread找到你可能忘了(在Visual Studio中使用屬性窗口)設置你的Content Processor屬性爲SkinnedModelProcessor模型中的文件屬性窗口。

+0

謝謝盧卡斯。我試圖按照建議設置ContentProcessor,但我沒有找到ContentProceesor的SkinnedModelProcessor。 (我使用XNA 3.0,VC#2008 Express) –

+0

正如Kikaimaru在這裏說的(http://goo.gl/L9QQ1):'你的內容項目需要引用流水線擴展項目'。我不確定這些擴展名是XNA的一部分還是第三方庫。 –

+0

再次感謝您。這些參考文獻已被添加。我檢查了所有文件。這是同樣的問題。 –

相關問題