animator 一些常用的方法
获取当前正在播放的动画状态:
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
bool isName = stateInfo.IsName("xxx") //当前动画是不是叫xxx
stateInfo.normalizedTime //为1时即是当前动画播完
stateInfo.length
stateInfo.speed
AnimatorStateInfo stateInfo = animator.GetNextAnimatorStateInfo(0);
//注意这个仅在过渡期有效
获取当前播放动画的名字(Clip)
string animString = animator.GetCurrentAnimatorClipInfo(0)[0].clip.name;
获取所有的动画Clip
AnimationClip[] aniClipList = animator.runtimeAnimatorController.animationClips;
aniClipList.Length //动画个数
//可以拿到每一个动画Clip的length等参数
untiy有两套动画系统:
Mecanim动画系统使用的是Animator组件,Legacy动画系统使用的是Animation组件
ps:animator用到的动画clip要设置一下的,不然没办法使用(Debug中去掉Legacy选项)