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