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