在Pipeline.Conte中出现NullReferenceException错误
本文关键字:NullReferenceException 错误 Pipeline Conte | 更新日期: 2023-09-27 18:13:56
我使用的代码来自"XNA 3D Primer",由M.C. Neel从Wrox。我对"第八章" 31页的代码有点问题。我有变量robotAni,其中robotAni被声明为类型MeshAnimationInfo (MeshAnimationInfo是Pipeline.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,在上面的行,是空的。所以,你能帮我解决这个错误吗?谢谢你
您已经注意到robot.Tag
是空的。因此,你的robotAni也是空的。
如果你想知道为什么你的标签是空的,请检查Nick Gravelyn的回应说:
您是否正确地使用了填充Model的导入器或处理程序?用什么标记属性?默认情况下(使用默认的模型导入器和处理器),Tag属性中不包含任何内容。
你可以在这个stackoverflow线程中发现,你可能忘记在你的模型文件属性窗口(在visual studio中使用属性窗口)中将Content Processor
属性设置为SkinnedModelProcessor
。