原文:https://blog.csdn.net/SerenaHaven/article/details/78796431
using UnityEngine;
public class SwapWeapon : MonoBehaviour
{
public AnimationClip[] weaponAnimationClip;
protected Animator animator;
protected AnimatorOverrideController animatorOverrideController;
protected bool flag;
public void Awake()
{
animator = transform.GetComponent<Animator>();
animatorOverrideController = new AnimatorOverrideController(animator.runtimeAnimatorController);
animator.runtimeAnimatorController = animatorOverrideController;
}
public void Update()
{
if (flag)
{
animatorOverrideController["xxx"] = weaponAnimationClip[0];
}else{
animatorOverrideController["xxx"] = weaponAnimationClip[1];
}
}
}
animatorOverrideController["xxx"] = weaponAnimationClip[0]; "xxx"是自身状态机中动画片段的名字
实际上不是真正切换的Animator Controller 而是将这个Controller中的动画片段换成了另一个Controller中的动画片段