什么是UI?
UI即User Interface(用戶界面)的簡稱。泛指用戶的操作界面,UI設計主要指界面的樣式,美觀程度。而使用上,對軟件的人機交互、操作邏輯、界面美觀的整體設計則是同樣重要的另一個門道。好的UI不僅是讓軟件變得有個性有品味,還要讓軟件的操作變得舒適、簡單、自由,充分體現(xiàn)軟件的定位和特點。
NGUI與UGUI詳細對比
UGUI是官方4.6以后推出的一套UI組件,相對于之前的GUI倒是改頭換面了,可視化操作,便捷、省心。NGUI則是unity一直以來最強的UI插件(沒有之一),甚至還是官方新UI的導師。
1.ugui的ui根目錄為canvas(畫布),ngui則是uiroot。在命名上官方似乎更貼合想象力。
2.在屏幕自適應方面,ugui為render mode。ngui則為scaling style。
3.anchor(錨點)的使用方式差不多,都是用來固定位置,在可視化方面,ugui的花瓣錨點真不太好調。
4.ngui靈活性不是一般的高,隨意創(chuàng)建一個sprite,加了boxcollider,它就可以是按鈕、滑動條……
5.ugui的sprite的切圖功能真心不錯。ngui使用圖集不能直接拖拉(畢竟是三方插件)略不方便。
6.ngui的tween動畫功能很省心,無需額外定義代碼,使用封裝好的腳本就可以實現(xiàn)一些簡單動畫,疊加腳本甚至能實現(xiàn)相對復雜的動畫效果。
最后,強大的網(wǎng)友分享了一張比較全面的對比圖(點擊圖片放大):
總結:
- NGUI與UGUI的區(qū)別
- uGUI的Canvas 有世界坐標和屏幕坐標
- uGUI的Image可以使用material
- UGUI通過Mask來裁剪,而NGUI通過Panel的Clip
- NGUI的渲染前后順序是通過Widget的Depth,而UGUI渲染順序根據(jù)Hierarchy的順序,越下面渲染在頂層.
- UGUI 不需要綁定Colliders,UI可以自動攔截事件
- UGUI的Anchor是相對父對象,沒有提供高級選項,個人感覺uGUI的Anchor操作起來比NGUI更方便
- UGUI沒有Atlas一說,使用Sprite Packer
- UGUI的Navigation在Scene中能可視化
- UGUI的事件需要實現(xiàn)事件系統(tǒng)的接口,但寫起來也算簡單
2.各自的優(yōu)缺點
1) NGUI還保留著圖集,需要進行圖集的維護。而UGUI沒有圖集的概念,可以充分利用資源,避免重復資 源。
2) UGUI出現(xiàn)了錨點的概念,更方便屏幕自適應。
3) NGUI支持圖文混排,UGUI暫未發(fā)現(xiàn)支持此功能。
4) UGUI沒有 UIWrap 來循環(huán) scrollview 內容。
5) UGUI暫時沒有Tween組件。
3.使用選擇總結
UGUI由于是Unity原生支持的,所以使用上會更加的人性化。并且伴隨著版本升級功能會越來越強,逐漸將成為主流ui方案。NGUI是UGUI出現(xiàn)之前的產(chǎn)物,通過MeshRenderer來實現(xiàn)類似CanvasRenderer的功能,概念上有點蹩腳。作為一個插件雖然已最大努力讓UI開發(fā)工作變得簡單,但相比能夠讓UnityEditor做出相應修改的UGUI(如RectTransform的出現(xiàn)),其易用性是沒法比的。綜合來說,新的項目建議使用UGUI,學習成本不高,工具流更有助于提高開發(fā)效率。