在Pipeline.Conte中出现NullReferenceException错误

本文关键字:NullReferenceException 错误 Pipeline Conte | 更新日期: 2023-09-27 18:13:56

我使用的代码来自"XNA 3D Primer",由M.C. Neel从Wrox。我对"第八章" 31页的代码有点问题。我有变量robotAni,其中robotAni被声明为类型MeshAnimationInfo (MeshAnimationInfoPipeline.Content的类)。

    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 was unhandeld

,这是完全正确的,只要robotAni,在上面的行,是空的。所以,你能帮我解决这个错误吗?谢谢你

在Pipeline.Conte中出现NullReferenceException错误

您已经注意到robot.Tag是空的。因此,你的robotAni也是空的。

如果你想知道为什么你的标签是空的,请检查Nick Gravelyn的回应说:

您是否正确地使用了填充Model的导入器或处理程序?用什么标记属性?默认情况下(使用默认的模型导入器和处理器),Tag属性中不包含任何内容。

你可以在这个stackoverflow线程中发现,你可能忘记在你的模型文件属性窗口(在visual studio中使用属性窗口)中将Content Processor属性设置为SkinnedModelProcessor