Animator是Unity新的动画系统,以下代码简单讲解如何切换动画
public void AnimatorSwitchoverCore()
{
Animator _myAnimator;
_myAnimator = _mySingleInCore._showModelInSingle.GetComponentInChildren<Animator>();
if(_myAnimator != null)
{
AnimatorStateInfo _animatorStateInfo = _myAnimator.GetCurrentAnimatorStateInfo(0);
SetAnimatorBool(_myAnimator);
//从Idle->Walk
if (_animatorStateInfo.IsName("Base.idle"))
{
_myAnimator.SetBool("IdleToWalk", true);
}
//从Walk->Run
else if (_animatorStateInfo.IsName("Base.walk"))
{
_myAnimator.SetBool("WalkToRun", true);
}
//从Run->Idle
else if (_animatorStateInfo.IsName("Base.run"))
{
_myAnimator.SetBool("RunToIdle", true);
}
}
}
//将所有动画条件值为False
void SetAnimatorBool(Animator _animator)
{
_animator.SetBool("IdleToWalk",false);
_animator.SetBool("WalkToRun",false);
_animator.SetBool("RunToIdle",false);
_animator.SetBool("WalkToIdle",false);
_animator.SetBool("RunToWalk",false);
_animator.SetBool("IdleToRun",false);
}