創建一個新的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中去。
點擊播放button,就可以看到動畫效果。
只是看了下UI2DSpriteAnimation的源代碼,比較簡單,默認僅僅有循環播放,也沒有暫停和播放功能(與UISprinte Animation同樣)。只是這些都能夠通過簡單的代碼改動來添加這些功能。
UISprinte Animation與UI2DSprite Animation的差別
除性能考慮外,在我看來最大的差別在於動畫播放的每一幀圖片的控制不同。
UISprinte Animation全然是通過Name Prefix來控制每一幀圖片的。或者是制作單個Atlas的全部圖片。並且播放的順序全然是靠圖片名稱來排序的,所以在制作動畫是,每張圖片名稱最好以數字結尾,便於排序。並且假設同一張圖片須要在多個動畫中使用的話,好像UISprinte Animation就不能合理的使用,不知道大家有沒有好的建議。
UI2DSprite Animation的優勢在於能夠隨意設置每一幀動畫的圖片,可是它必須將每個單張圖片轉成Sprite,不知道是否在性能上有所劣勢。