[Unity]UnityFactory.factory.BuildArmatureComponent空引用异常怎么办
最近做面试项目,第一次接触DragonBones,尝试在代码中创建ArmatureComponent
,
armatureComponent = UnityFactory.factory.BuildArmatureComponent(clothesName);
Assert.IsNotNull(armatureComponent);
然后每次都是BuildArmatureComponent
抛空引用异常,连Assert都碰不到,就算有时候能碰到也过不去这个Assert,好像跟mesh什么什么有关系
直接说结论,导入资源的时候,正常来说是在项目中导入两个json一个png,然后在这里
创建一个ScriptableObject,然后现在项目里是这四个文件对吧:
这个时候不能直接拖Data给脚本用,需要在Hiearchy里创建一个Armature Object
出来
然后Data文件拖到右边Inpector里,点一下这个Create
这个时候再看文件夹,会生成第五个文件:
有了那个_tex_Mat
之后,在脚本里调用BuildArmatureComponent
才不会抛异常
报错就是因为缺这个文件,具体我不懂Unity学太浅了
自己直接调用BuildArmatureComponent
的时候不会生成这个文件,只有在Editor里创建一个对象出来,然后点那个脚本里的Create才可以
所以就是每次换素材时(三个全新的文件),都要去编辑器里手动用新素材创建一个ArmatureObject
出来,然后去右边点一下那个Create来生成这个_tex_Mat
文件,后面再调用脚本再干嘛的就能用了
如果是用UGUI模式我猜测也需要手动创建一个ArmatureObject(UGUI)
对象,然后生成UGUI版的这个文件,在代码里才能正常使用
所以为什么BuildArmatureComponent()
函数不能直接生成这个文件呢,为什么呢
浪费我两个小时的时间,真生气啊