User Interface (UI)系統(tǒng)是應(yīng)用與用戶交互的窗口,合理地設(shè)置UI 可以讓用戶獲得更好的體驗(yàn)。
文 / 丁建雄
圖 / Mary Anna
小白是單純?yōu)榕d趣而寫作的獨(dú)立創(chuàng)作人,如果您喜歡小白的文章,歡迎關(guān)注、交流、分享(引用請鏈接到本文)。

寶貝
- unity 使用UGUI 作為自帶的UI 編輯器。
- 所有UI 元素都必須作為Canvas 的子對象存在,一個(gè)Canvas 可以掛載多個(gè)子對象,一個(gè)場景中可以存在多個(gè)Canvas 對象。
- Event System 的作用是用于處理場景中的交互事件。
- Canvas 的三種渲染模式(render mode):
Screen Space-Overlay:默認(rèn)渲染模式,優(yōu)先級最高,不會(huì)被其他任何對象覆蓋,大小由Game 視圖大小決定。
Screen Space-Camera:這種渲染模式基本和上一個(gè)一致,而由于是相機(jī)跟隨,如果屏幕尺寸改變,Canvas 會(huì)自動(dòng)重新適應(yīng)屏幕尺寸。
World Space : VR項(xiàng)目必須以這種模式,這種模式下Canvas 對象會(huì)跟其他所有2D對象一樣存在于場景中。 - 在Canvas 內(nèi)部,位于下方的組件會(huì)優(yōu)先于上方的組件顯示在場景視圖的前面而發(fā)生遮擋。
- 交互元素包括:Button(按鈕),Toggle(開關(guān)),Slider(滑動(dòng)條)等,通過這些控件,可以響應(yīng)簡單的交互效果??梢酝ㄟ^設(shè)置一個(gè)UIController 對象來統(tǒng)一控制UI 交互的邏輯。
- 布局屬性理解:布局在新版本的UI系統(tǒng)中有很不錯(cuò)的改動(dòng),引入了Anchor(錨點(diǎn))和Pivot(軸點(diǎn)),關(guān)于這兩個(gè)屬性的理解,不少人都很迷糊,網(wǎng)上找了很多博客文章,寫得也是含糊不清。這里附上官方文檔:
https://docs.unity3d.com/Manual/UIBasicLayout.html
其實(shí),很好理解,恰如其名:錨點(diǎn)就是固定相對位置不動(dòng)的點(diǎn),如果父節(jié)點(diǎn)(屏幕)產(chǎn)生尺度縮放,子節(jié)點(diǎn)能保證與anchor 的距離保持不變,以此保證適配不同的屏幕;軸點(diǎn)就是旋轉(zhuǎn)中心,旋轉(zhuǎn)以此為中心而非幾何中心。
這篇中文博客講解還行:https://blog.csdn.net/duotemplar/article/details/76644035,可以用于輔助理解。
結(jié)束語
UI 先簡單了解一下,具體到要用到某塊知識的時(shí)候再具體學(xué)習(xí)一下。其實(shí),由于主要處理3D物體,Unity 開發(fā)中可能沒有基于界面的應(yīng)用那么依賴UI,更多的是通過設(shè)置UI 的屬性來設(shè)置功能性的效果。廣義上講,整個(gè)場景其實(shí)就是一個(gè)巨大的UI(User Interface)。