Unity 動畫系統 Animation 和 Animator的小實例


本文結合一個很簡單的動畫demo,分別采用2種方法,來對比Animation和Animator的使用方式:

  方法1:單獨使用Animation

  方法2:Animation結合Animator

動畫Demo

兩個動畫。一個是移動,一個是縮放。

 

 


實現方式的對比

一、單獨Animation來實現

空場景,找到一張Sprite圖片,拖到面板中,右鍵添加Animation組件。如下:

 點中這張pig豬的圖片,點擊Unity的 Window->Animation->Animation。出現如下:

這個時候發現,提示僅僅讓創建一個Animation。我們點擊Create。然后命名保存。

點擊 Add Property,選擇Transform的Position,並在下圖內容中的右側建立幾個關鍵幀。(怎么建之類的我就不寫了)Unity播放動畫的時候會自動插值。

 

點擊左上角 Animation-Move 右邊的上下箭頭,彈出小框,選擇Create New Clip,建立另一個動畫Animation-Scale。

動畫Animation-Scale如下:

 這個時候Animation組件內容發生了變化,剛剛創建的2個動畫在里面:

這個時候,動畫已經做完了。點擊Unity開始按鈕,就可以播放。

還可以通過簡單代碼來控制播放:

 Animation animation;

 animation.Play("Name");

 通過動畫名字就可以播放相應的動畫。

至於如何設置動畫的播放速度、播放方式、如何暫停之類的,稍后詳解Animation 類。

 

 


二、Animation和Animator來實現

 選中pig豬,與方式一不同的是,不要先添加Animation組件,直接Window--Animation--Animation,命名保存后,會出現2個文件:

👆 一個是Animation播放動畫的,一個是Animator管理動畫的。

👇pig豬會自動添加一個Animator組件,沒有了Animation組件:

 

同樣的方式,再創建一個 Animator-Scale。這個時候,點擊pig豬,在點擊Window--Animation--Animator,來觀察Animator視圖:

Animator可以管理這兩個動畫。創建動畫切換的條件:AniState 為1時,播放Move動畫,為2時,播放Scale動畫。

 

代碼里面可以控制條件變量AniState的值,進而達到控制動畫切換的目的:

Animator animator;
animator.SetInteger("AniState",1);  


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM