之前已經(jīng)寫過兩套的動畫系統(tǒng),今天主要分享關(guān)于動畫層的使用及注意事項(xiàng)
這個就是層的概念
1.為什么動畫中會有層的概念
其實(shí)在新版的動畫狀態(tài)機(jī)中,大量的技巧已經(jīng)讓一般的小白暈頭轉(zhuǎn)向了。而且就目前來說:使用狀態(tài)機(jī)的單一層動畫就已經(jīng)可以滿足日常開發(fā)需要。那么為什么出現(xiàn)層的概念呢?
先來幾張圖,對比一下,你就會發(fā)現(xiàn)哪里好
其實(shí)我們已經(jīng)可以發(fā)現(xiàn)這種好處了,類似項(xiàng)目管理
第一:分離動畫組
第二:規(guī)范動畫制作
第三:提供更豐富的動畫制作
Ps:其實(shí)跟我們的動畫融合樹差不多。。。
2.如何使用層動畫?
01-添加動畫層
添加層
注意:同一時刻我們只能執(zhí)行一個層的動畫片段。
02-添加參數(shù)
Paste_Image.png
注意:參數(shù)是執(zhí)行動畫的觸發(fā)條件
03-給第二層的觸發(fā)線綁定參數(shù)
Paste_Image.png
綁定的過程中,其實(shí)我們會發(fā)現(xiàn)New State就代指第一層動畫組,而參數(shù)幫助我們過渡了層。當(dāng)然動畫是顯示不出來的,但是動畫片段確實(shí)執(zhí)行了。
3.注意點(diǎn)?
在動畫層之間切換的過程中,其實(shí)主要是通過參數(shù)的滿足與否來進(jìn)行層動畫執(zhí)行操作,但是有一個前提就是層的權(quán)重 如下圖:
權(quán)重問題決定動畫能不能顯示出來
如果不設(shè)置權(quán)重,你會發(fā)現(xiàn)即便分好層,而且在狀態(tài)機(jī)中發(fā)現(xiàn)動畫執(zhí)行了,但是界面的角色并沒有顯示出來。
前面的分享已經(jīng)提到過使用代碼控制動畫的參數(shù),這里如何通過代碼設(shè)置權(quán)重呢?
[SerializeField]
private Animator ani;
void Start () {
// 表示設(shè)置動畫第二層的權(quán)重為1
ani.SetLayerWeight(1, 1);
}