今天和大家分享一下unity中Animation動畫組件的簡單應用 本文中不涉及人物動畫制作,只是簡單的動畫組件的使用
一.Animation組件
- 1.Animatin 默認動畫
- 2.Animatins/Size 播放動畫數量
- 3.Rig/ Animatin Type/ Legacy 是指舊版動畫系統
Mecanim 是指新版動畫系統
舊版本動畫系統和新版本的動畫系統有很大的不同
如何播放動畫?
播放動畫主要用到這幾個方法,Play,CrossFade和CrossFadeQueued,給大家講一下這三種方法的不同
Play是瞬間切換,沒有過渡效果
CrossFade則是有過渡效果,但是只能且能切換同一層的動畫,層級通過layer來設置
CorssFadeQueued()函數是播放動畫隊列,參數是(動畫名稱,過渡長度,隊列模式,播放模式),
其中隊列模式是指結束上一個動畫,開始下一個動畫
那么結束播放動畫如何實現呢?
很簡單只需要通過Stop()函數來實現
二.動畫融合
1.AddMixingTransform()
參數是你要播放動畫的組件,例如一個人物有胳膊,腿,身體,人物走路的時候只想讓它的腿動,
而手不動,則此時可以用動畫融合,函數參數就是兩條腿就可以實現該效果
三.動畫幀事件
定義:當動畫播放到某一幀,執行指定的方法,例如當敵人AI攻擊的時候武器打中人物的時候,
但是此時並沒有真正的打中 只是到達一定的角度,像是刺中,而執行人物掉血的方法,就可以使用動畫幀事件
創建動畫幀事件的過程:
1.首先需要拷貝人物預置體中的動畫到另一個文件夾中 原因:因為通過動畫分割出的動畫或者說是人物預置體中自帶的動畫,
屬性為只讀屬性,不可添加幀事件
2.然后再打開Animation 快捷鍵是ctrl+6
3.再選定動畫和該動畫指定的某一幀添加幀事件即可,事件方法只要在該物體上掛載的腳本上定義
而這里又要涉及一個重要的方法 SendMessage() 顧名思義,這個方法是發送消息的,讓目標物體執行一個方法
具體用法是SendMessage("方法名",參數),方法在目標所掛載的腳本中定義,估計有人會問,這個有什么用,
舉個簡單的例子,比如敵人AI打擊到了人物,人物的血條要減少,所以就可以通過SendMessage來達到這樣的效果