在unity的老版本中我们只有Animation组件,在4.6版本以后则增添了Animator组件,如果只是控制一个动画的播放我们则用Animaton组件,如果是很多动画之间相互转换则使用Animator组件,它们两者的区别就是Animator有一个动画控制器,使用它来进行动画切换是非常方便的,但缺点是占用内存比Animaton组件大。
我们这里先介绍Animaton组件:
Animation.Play()播放;
Animation.CrossFade()动画淡入淡出
Animation.Sample()采样
Animation.Stop ()停止
这里我就不详细介绍了,我发一个链接里面很详细的介绍了Animaton组件
http://blog.csdn.net/bean244/article/details/20544367
好了,下面我介绍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);
}