unity Animator做簡單的人物動畫
阿新 • • 發佈:2018-11-26
做一個簡單的總結。人物動畫的核心是狀態機的設定,配合指令碼的參量,來實現各組動畫的轉換。當然,我現在也只會最簡單的動畫。
狀態機的設定有幾個坑需要記一下:
Apply Root Motion
:在Animator
中最好取消勾選,這個選項的意思是將動畫的角度變換應用到場景中,但這樣子會影響我們指令碼的使用;- 狀態機設定新增
Make Transition
時,要把Has Exit Time
取消勾選,不然的話一個動畫沒完它是不會放你想要的動畫的。 - 參量設定需要指令碼的配合,應用到
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);