重写游戏动画OverrideAnimation
有时候我们需要切换武器,每个武器都有自己的动画,这时候我们就会使用动画重写,
初始化Initisial
private AnimationClip stopAnimationClip;//停止动画片段
public AnimationClip blankAnimationClip;//空片段则不覆盖
private AnimatorOverrideController animOverride;//重写动画
start
private void Awake()
{
//初始化动画切换
animOverride = new AnimatorOverrideController(_animator.runtimeAnimatorController);
_animator.runtimeAnimatorController = animOverride;
}
使用重写
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();获取到动画控制器,然后使用数组重写相应的动画!实现动画的切换!