Unity外掛程式之NGUI學習(4)—— 建立UI2DSprite動畫,nguiui2dsprite
建立一個新的Scene,並按 Unity外掛程式之NGUI學習(2)建立UI Root,並在UI Root的Camera下建立一個Panel。
然後在選中Panel,在菜單中選擇NGUI->Create->Unity 2D Sprite
查看Inspector視窗
接著是在Unity中製作Sprite:
在Project視窗建立Textures檔案夾,並從外部拖入一些圖片素材,然後選中需要轉成Sprite的圖片,然後在Inspector視窗進行轉變Sprite的操作,。
選擇Sprite(2D/uGUI)即可完成轉變,圖片可以多選。
然後在Hierarchy視窗選中先前製作的2D Sprite,在Inspector視窗中選擇先前製作的Sprite。
接著是UI2DSprite的動畫製作了,在Hierarchy視窗選中先前製作的2D Sprite,在菜單中選擇Component->Scripts->UI2DSprite Animation,然後在Inspector視窗對UI2DSprite Animation進行編輯。
Framerate 設定幀率
Ignore Time Scale 設定是否忽略TimeScale對動畫播放的影響
Frames 手動設定動畫播放的順序,可將先前製作的Sprite拖動到各個Element中去。
點擊播放按鈕,即可看到動畫效果。
不過看了下UI2DSpriteAnimation的源碼,比較簡單,預設只有迴圈播放,也沒有暫停和播放功能(與UISprinte Animation相同),不過這些都可以通過簡單的代碼修改來增加這些功能。
UISprinte Animation與UI2DSprite Animation的區別
除效能考慮外,在我看來最大的區別在於動畫播放的每一幀圖片的控制不同。
UISprinte Animation完全是通過Name Prefix來控制每一幀圖片的,或者是製作單個Atlas的所有圖片,而且播放的順序完全是靠圖片名稱來排序的,所以在製作動畫是,每張圖片名稱最好以數字結尾,便於排序。而且如果同一張圖片需要在多個動畫中使用的話,好像UISprinte Animation就不能合理的使用,不知道大家有沒有好的建議。
UI2DSprite Animation的優勢在於可以任意設定每一幀動畫的圖片,但是它必須將每一個單張圖片轉成Sprite,不知道是否在效能上有所劣勢。
安裝Unity的外掛程式NGUI,匯入包之後怎在沒有這個菜單教程裡的NGUI菜單是怎出來的還有
檢查是否版本不對?不過這問題我沒遇到過
unity ngui tween怎使用?怎實現展示收縮動畫效果?樣本
tweenPosition.begin(gameobject,duration,targetPosition);