0

我使用来自 Wrox 的 MC Neel 的“XNA 3D Primer”中的代码。我对第 31 页的“第 8 章”的代码有疑问。我有变量robotsAni,其中robotsAni被声明为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 未处理

只要上面一行中的robotsAni为空,这就是完全正确的。那么,你能帮我解决这个错误吗?谢谢

4

1 回答 1

0

正如您所注意到的那样robot.Tag,它是空的。因此,您的robotAni 也是空的。

如果您想知道为什么您的标签为空,请查看Nick Gravelyn 的回复,上面写着:

您是否正确使用了用某些东西填充 Model.Tag 属性的导入器或处理器?默认情况下(使用默认模型导入器和处理器)不会将任何内容放入 Tag 属性中。

正如您在此 stackoverflow 线程中所发现的那样,您可能忘记在模型文件属性窗口中将Content Processor属性设置为(在 Visual Studio 中使用属性窗口)。SkinnedModelProcessor

于 2013-05-16T08:34:58.567 回答