重写游戏动画OverrideAnimation

有时候我们需要切换武器,每个武器都有自己的动画,这时候我们就会使用动画重写,

初始化Initisial

private AnimationClip stopAnimationClip;//停止动画片段

public AnimationClip blankAnimationClip;//空片段则不覆盖
private AnimatorOverrideController animOverride;//重写动画

start
private void Awake()

{

//初始化动画切换

    animOverride = new AnimatorOverrideController(_animator.runtimeAnimatorController);
    _animator.runtimeAnimatorController = animOverride;

}

WX20220630-104310@2x.png

使用重写

private IEnumerator SetStopAniamtion()

     {
         if (stopAnimationClip != null)
         {
             animOverride[blankAnimationClip] = stopAnimationClip;
             _animator.SetBool("EventAnimation", true);
             yield return null;
             _animator.SetBool("EventAnimation", false);
         }
         else
         {
             animOverride[stopAnimationClip] = blankAnimationClip;
             _animator.SetBool("EventAnimation", false);
         }
         
     }

其中BlankAnimationClip是Animator控制器里面的动画片段 通过new AnimatorOverrideController();获取到动画控制器,然后使用数组重写相应的动画!实现动画的切换!

Last modification:June 30th, 2022 at 10:44 am
如果觉得我的文章对你有用,请随意赞赏