Unity中Animation与Animator组件的使用

发表于2018-05-20
评论0 2k浏览
本篇文章主要和大家介绍下Animation与Animator组件,在Unity4.6之前只有Animation组件,之后才加入了Animator组件,如果只是控制一个动画的播放我们则用Animaton组件,如果是很多动画之间相互转换则使用Animator组件,它们两者的区别就是Animator有一个动画控制器,使用它来进行动画切换是非常方便的,但缺点是占用内存比Animation组件大。

Animaton组件介绍

Animation.Play()播放;
Animation.CrossFade()动画淡入淡出
Animation.Sample()采样
Animation.Stop ()停止
详细的Animaton组件介绍可以参考:Animation属性及使用方法

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

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签: