Unity中Animation与Animator组件的使用
发表于2018-05-20
本篇文章主要和大家介绍下Animation与Animator组件,在Unity4.6之前只有Animation组件,之后才加入了Animator组件,如果只是控制一个动画的播放我们则用Animaton组件,如果是很多动画之间相互转换则使用Animator组件,它们两者的区别就是Animator有一个动画控制器,使用它来进行动画切换是非常方便的,但缺点是占用内存比Animation组件大。
Animaton组件介绍
Animation.Play()播放;
Animation.CrossFade()动画淡入淡出
Animation.Sample()采样
Animation.Stop ()停止
Animator组件介绍
AnimatorStateInfo stateInfo = m_ani.GetCurrentAnimatorStateInfo(0);//获取到当前Animator的状态信息,0表示Base Layer层 m_ani.IsInTransition(0);//是否处于转换状态 if(stateInfo.fullPathHash==Animator.StringToHash("Base Layer.idle")&&!m_ani.IsInTransition(0)) { m_ani.SetBool("idle",false); } if(stateInfo.fullPathHash==Animator.StringToHash("Base Layer.run")&&!m_ani.IsInTransition(0)) { m_ani.SetBool("run",false); } if(stateInfo.fullPathHash==Animator.StringToHash("Base Layer.attack")&&!m_ani.IsInTransition(0)) { m_ani.SetBool("attack",false); } if (stateInfo.fullPathHash == Animator.StringToHash("Base Layer.death") && !m_ani.IsInTransition(0)) { // Destroy(this.gameObject); }