1. 程式人生 > >NGUI對遊戲裡各種常見UI效果的實現總結

NGUI對遊戲裡各種常見UI效果的實現總結

根據NGUI的範例,現在專案裡的效果實現以及網上搜索總結如下:

1.主角生命值降到很低時,螢幕的血紅色閃爍效果。

      給螢幕上紅色的sprite附上tween color元件,調整duration時間以及from和to中的顏色值和透明度,更改playStyle為loop或者pingpong即可。觸發事件用指令碼控制,這裡有兩種思路:一是把整個gameobject的enable設定為true或者false,tweencolor元件為預設播放狀態,

     這樣控制gameobject的enable為true或false即可實現是否出現閃爍。二是加上playTween指令碼,然後在面板上設定觸發條件,兩種方法看實際情況決定用哪個。

2. NGUI層上顯示幀動畫

     兩種方案:一是把要做成動畫的所有sprite單獨分割然後打包成Atlas,在指令碼中根據時間制定sprite的atlas以及spritename 即可實現幀動畫。如程式碼

     第二種方法是用unity新增的2D動畫機制來做,這種在處理圖的時候會簡單一些。無論是所有幀動畫素材都放在一張大圖裡,還是單獨切割出來的一張張小圖都可以。將圖片匯入到unity中,選擇圖片的TextureType為sprite,如果是很多小序列幀合併在一起的大圖,再選擇SpriteMode

    為Multiple,點選SpriteEditor進入編輯介面具體調整即可,這樣在大圖的底下會出現很多小圖子物件,

將要做成序列幀的所有小圖一併拖到scene層中,系統會彈出對話方塊儲存動畫片段名稱,接下來就是製作動畫的流程,就不細說了。在動畫製作好以後,要讓動畫

    與NGUI控制元件的顯示順序發生變化,得用指令碼顯示的控制其渲染順序,現成的指令碼是renderQueueModifier,選擇好目標,調節位置選項即可,特別注意的是,動畫物件的Layer一定得選擇為NGUI相機所處在的層上,不然是無法顯示的。

3.NGUI上顯示粒子效果,並調整大小

      如何在NGUI上顯示粒子效果參見第2顯示動畫,大小的調節通過ParticleScaler這個指令碼實現,在面板中調節其引數即可

4.進度條滾動效果

     具體實現參見SliderAnimation,也可以用2中的幀動畫思路來做。也就是說用NGUI做動畫的兩種方法(不是2提到的):一是用陣列來儲存所有的序列幀圖片,再每幀控制其顯隱即可。二是隻儲存一張圖,在腳本里改變其atlas以及spriteName即可。在空間利用上來說,顯然是二比較好。

5.頭頂浮動的傷害數字類似效果

6.揹包類效果,即可拖動,交換物品

7.tooltip效果

8.震屏效果

9.小地圖製作

10.任務面板效果,就是點選到具體任務出現詳細描述面板,點選別的切換到相應描述,再次點選收縮回來。部分實現效果參見NGUI Examples中的QuestLog這個示例.

12. 選人介面效果,如點選下一個時人物框會輪流的滑動展示。

13.類似QQ的聊天對話方塊,底下輸完提交到上面的視窗中

14.NGUI常用指令碼用途

   一。UIDragObject : 使控制元件面板等能被拖動