1. 程式人生 > >unity Animator做簡單的人物動畫

unity Animator做簡單的人物動畫

做一個簡單的總結。人物動畫的核心是狀態機的設定,配合指令碼的參量,來實現各組動畫的轉換。當然,我現在也只會最簡單的動畫。

狀態機的設定有幾個坑需要記一下:

  1. Apply Root Motion:在Animator中最好取消勾選,這個選項的意思是將動畫的角度變換應用到場景中,但這樣子會影響我們指令碼的使用;
  2. 狀態機設定新增Make Transition時,要把Has Exit Time取消勾選,不然的話一個動畫沒完它是不會放你想要的動畫的。
  3. 參量設定需要指令碼的配合,應用到animator.SetXXX("參量名", 指令碼參量名)這個函式。

到現在,人物動畫最常用的有兩個參量:speed

angle。下面是配合設定的指令碼。

Vector3 velocity = (m_transform.position - last_position) / Time.deltaTime;
localVelocity = m_transform.InverseTransformDirection(velocity);
localVelocity.y = 0;
speed = localVelocity.magnitude;
//angle = (HorizontalAngle(localVelocity) + 360.0f) % 360.0f;

last_position = m_transform.position;
m_animator.SetFloat("Speed", speed);
//m_animator.SetFloat("Angle", angle);

//Debug.Log("speed: " + speed);