[0]Laya.Sprite3D.instantiate clone 对象后,Animator 中的avatarMask失效

Laya.Sprite3D.instantiate clone  对象后,Animator 中的avatarMask失效。
 
 Laya.Sprite3D.load("unity/***.lh", Laya.Handler.create(this, function (SA_Character: Laya.Sprite3D) {
       
            // 直接使用模板,分层融合动画avatarMask生效,动画正常播放。
            let character = SA_Character; 
            // 使用instantiate 分层融合动画avatarMask失效,动画播放不正常。 
            //  let character = Laya.Sprite3D.instantiate(SA_Character); 
            scene.addChild(character);
            var animator = character.getChildByName("SA_Character").getComponent(Laya.Animator);
            animator.play("Run_Static", 0);
        }));
已邀请:

Laya_z

赞同来自:

找到AnimationControllerLayer这个类的cloneTo方法,里面加上dest.avatarMask = this.avatarMask这句话看一下
 

138*****661

赞同来自:

@Laya_zhang: 已上传。
 

Laya_z

赞同来自:

问题找到了,
1.克隆后avatarMask没有效可以先按照第一个回复那样修改
2.修改后动画状态播放还是不对,这个问题是因为你的动画中,有一些动画状态是空的Motion,这种情况导出文件的时候会正常导出,但是在代码解析的过程中会把它忽略,所以导致了克隆之后播放的动作不正确,针对这一情况我们后面也会加上这种考虑。
两个问题后面版本都会进行修复,感谢反馈

要回复问题请先

商务合作
商务合作