Unity Animator获取当前播放动画片段

Animator获取当前播放片段,获取错误,跟当前播放的片段不一致的原因。

一般使用下面API,获取当前动画机播放片段:

//当前为Idle,现在切换到Run  
AnimatorStateInfo  animatorInfo = animator.GetCurrentAnimatorStateInfo(0);
currAnim.IsName("Run");//这里获取到的还是Idle

这里有一个机制,如果上一句代码是播放一个动画片段,下一句代码立即去获取当前播放片段信息,是获取不到的,需要等待几十ms的延迟,才能正确获取到当前播放片段信息。这是因为动画片段切换有一个切换过渡transition时间。