[Unity]UnityFactory.factory.BuildArmatureComponent空引用异常怎么办

发布时间 2023-08-22 21:05:26作者: takoyak1

最近做面试项目,第一次接触DragonBones,尝试在代码中创建ArmatureComponent

    armatureComponent = UnityFactory.factory.BuildArmatureComponent(clothesName);
    Assert.IsNotNull(armatureComponent);

然后每次都是BuildArmatureComponent抛空引用异常,连Assert都碰不到,就算有时候能碰到也过不去这个Assert,好像跟mesh什么什么有关系
直接说结论,导入资源的时候,正常来说是在项目中导入两个json一个png,然后在这里
image

创建一个ScriptableObject,然后现在项目里是这四个文件对吧:
image

这个时候不能直接拖Data给脚本用,需要在Hiearchy里创建一个Armature Object出来
image

然后Data文件拖到右边Inpector里,点一下这个Create
image

这个时候再看文件夹,会生成第五个文件:
image

有了那个_tex_Mat之后,在脚本里调用BuildArmatureComponent才不会抛异常
报错就是因为缺这个文件,具体我不懂Unity学太浅了
自己直接调用BuildArmatureComponent的时候不会生成这个文件,只有在Editor里创建一个对象出来,然后点那个脚本里的Create才可以
所以就是每次换素材时(三个全新的文件),都要去编辑器里手动用新素材创建一个ArmatureObject出来,然后去右边点一下那个Create来生成这个_tex_Mat文件,后面再调用脚本再干嘛的就能用了
如果是用UGUI模式我猜测也需要手动创建一个ArmatureObject(UGUI)对象,然后生成UGUI版的这个文件,在代码里才能正常使用
所以为什么BuildArmatureComponent()函数不能直接生成这个文件呢,为什么呢
浪费我两个小时的时间,真生气啊