【Unity3d】UGUI 之 Animator, Animation 動畫系統學習筆記

這幾天體驗了一把UGUI,用起來感覺棒棒噠。直接進入正題吧,如果要寫一個全面的教程,估計還是要花點精

力,如果要寫好,就更不容易。那麼,我還是以給自己做筆記爲目的來寫這篇文章吧,還是比較適合我這種小菜的哈

哈。


本文鏈接: http://blog.csdn.net/a237653639/article/details/48577143

作者: 小明    郵箱: [email protected]

 


下面真的進入正題了^^


1.Animation


Animation是以前的系統遺留下來的,而在我開始學習Unity的時候已經基本上很少用這個系統了,但是現在要做UI

而且是UGUI,那我就要重新學過。

注意:在調整曲線之前,如果你設置的是位置動畫,那麼請務必先設置好錨點自適應。不然在你設置錨點後,動畫播

放的還是設置之前的位置。(這是比NGUI坑的地方,不過注意下就好了)

 

下面說說Animation的一些常用操作吧:


1)曲線


說到曲線,不得不說這一點還是NGUI的方便一點,有模板。UGUI得自己調,還總調不好。不過在充分利用一些功能

後,也基本能夠達到要求,不過稍費時一點。還是直接進入正題吧。


比如我要改變ImageColora通道,也就是透明度。在選好Color後,會出現如圖:


在上圖中,標記的序號是選中的遊戲物體。是我們不需要的,要刪掉它們,但是在改變比如scale的時候就不能刪

除不需要的屬性了。是我們要改變的屬性。我們選中它,編輯曲線。



比如我們需要編輯一個呼吸動畫(也就是NGUI裏的PingPong)可以這樣:


1.調整最後的keytime,比如我調整爲2秒一個週期。


2.增加一個key,設置值爲value=0time=1如圖:

 


3.這個時候回出現如下圖的情況,我原來就不之所措,但是後面才知道 只要拉伸右邊與下邊的滾動條就可以再次讓

整個曲線出現在我們面前。如圖:


4.這個時候兩邊的曲線是彎曲的,但是我們想要把它們變直(讓動畫的變化率不變),右鍵中間的key,選擇

Left Tangent裏的Linear就能讓左邊曲線變直線,同樣的方法使右邊曲線也變直。如圖:



如果想要更復雜的效果,也是增加key,然後調整(通過其他的一些選項)

 

最後,該動畫默認是循環播放的,如果你不需要就在Project面板中找到該動畫把Loop Time勾掉就ok

 

2.Animator


通過上面的操作,我們有了一個Animator Controller,並且自動掛在Image上了。下面我們打開AnimatorWindow-

>Animator


我們會看到如圖:



意思就是自動播放。但是我們經常不希望自動播放,那麼可以右鍵新建一個空的狀態,並設爲默認。


 

下面該涉及到代碼了!!


我根據需求來闡述:


需求1:>_<我不想再設置參數播放動畫了


我們想再代碼中調用播放動畫,怎麼做呢?一般來說,會想到用參數,然後用SetBoolSetTrigger等,這樣也行。不

過還有更簡單的,就是anim.Play函數,直接可以播放指定動畫名,這樣就不需要設置管參數什麼的之類的多餘的操

作了。


好,接着說。如果你在播放一個動畫後,再次播放時發現,誒?怎麼不動了?那是因爲該動畫沒有退出播放,你再播

放就不起作用了。解決辦法是,在該動畫上右鍵選擇Make Transition連接到我們最開始新建的默認State(橘色的那

個),這樣在動畫播放完後,就過渡到了橘色的默認狀態了,當你再播放的時候也沒有問題了。

 

需求2:O(∩_∩)我想讓不同的狀態在同一個狀態機中同時播放 


這時我們就可以發揮層的作用了(當然層的作用不止這個)。首先選中Layers(在左上角),會看到默認的

Base Layer。我們新建一個My Layer,有什麼不同??答:1.名字不同 2.weight 不同 3.狀態機不同。如圖:



我們應該注意到,紅線的地方Base Layer是實心的,表示權重(weight)1,而My Layer是空心的,表示權重爲0。這

weight的意思就是執行百分之幾的意思,如果爲0,就是不執行,爲1就是執行完整,爲0.5,就是執行一半。現在

我們想要完整執行,那麼我們點擊設設置按鈕,設置weight1


那麼下面我們可以自行按照以上所述添加要重複播放的動畫到新的My Layer層中就可以了。而調用的函數還

anim.Play,不過這次需要兩個參數anim.Play(動畫名,層的索引),層的索引通過anim.GetLayerIndex(層名)得到。


有個問題是這麼多字符串不好管理呀,那麼可以建一個AnimatorConfig類來管理字符串,如圖:


 

總結

個人還是比較喜歡UGUI,畢竟是unity親生的,相信後面會越來越好的

  

 

 

發佈了53 篇原創文章 · 獲贊 13 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章