淘先锋技术网

首页 1 2 3 4 5 6 7

    在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);
        }