UGUI是Unity3D4.6官方提供的UI系統,支持2D和3D UI的開發。
Unity3D UI史
OnGUI
在Unity4.6之前,官方提供的是OnGUI函數來開發UI界面,當然問題也比較多,首先不支持可視化開發,其次UI始終位於所有3D對象的上方,無法實現在UI上添加3D模型的效果。
現在一般這套系統多用來在Unity編輯器中開發界面或者快速搭建一些調試界面時使用。
NGUI
大名鼎鼎的NGUI是可以看做是開發Unity游戲必備的插件,支持可視化開發,同時也支持2D和3D UI的開發,想在UI上顯示3D模型和粒子也沒問題。
我也有一套NGUI的學習筆記,還在完善中,詳情可以點擊:http://www.cnblogs.com/hammerc/p/4481597.html
UGUI
首先這套官方的UI系統就是被Unity請去的NGUI作者開發的,所以在操作上兩者大體一致,同時UGUI是開源的系統,大家可以在下面的連接中獲得UGUI的源碼:
https://bitbucket.org/Unity-Technologies/ui/src
官方案例
大家可以下載一下官方提供的UGUI案例:
https://www.assetstore.unity3d.com/en/#!/content/25468
Canvas
在UGUI中,其根容器為Canvas,我們發現無論添加任何UI到場景中,都會默認生成Canvas以及EventSystem。
所有的UI都必須作為Canvas的子級進行添加。
我們接下來詳細的看看Canvas的一些設置:
Canvas
Render Mode:渲染模式,如下
- Screen Space - Overlay:2DUI,始終顯示在屏幕最前方。
- Screen Space - Camera:2D及3DUI,綁定到指定攝像機,可顯示3D內容,同時UI可以進行3D方面的旋轉,UI可以獲得3D效果。
- World Space:3DUI,存在3D空間中的UI。
Pixel Perfect:是否已像素的方式來顯示UI。
Sort Order:不同Canvas之間的前后顯示排列設置。
Canvas Scaler
Ui Scale Mode:UI縮放模式,如下:
- Constant Pixel Size:像素大小始終不變,即一個100*100的圖片在任何的分辨率下都占用100*100的像素。一般PC上會使用這種方式,因為PC端分辨率差異並不大。
- Scale With Screen Size:不關心圖片的實際像素大小,而只關心Width及Height值,這個值如果是1000,那么100高度的圖片在任何分辨率下都只占用屏幕1/10的尺寸。一般移動端會使用這種方式,因為移動端分辨率差異較大。
- Constant Physical Size:根據物理單位來進行縮放。
Graphic Raycaster
場景中的射線調整,用於交互事件的配置。
EventSystem
我們簡單看下EventSystem,后面會有筆記詳細記錄EventSystem的使用方法:
這里綁定了3個腳本,可以發現除了本身的EventSystem外,還添加了關於標准輸入(即鼠標鍵盤)和觸摸輸入兩個輸入腳本。