1、畫布(Canvas)
每一個GUI控件必須是畫布的子對象。當選擇菜單欄中GameObject→UI下的命令來創(chuàng)建一個GUI控件時,如果當前不存在畫布系統(tǒng)將會創(chuàng)建一個畫布。
UI元素的繪制順序依賴于它們在Hierarchy面板中的順序。如果兩個UI元素重疊,后添加的UI元素會出現(xiàn)在之前添加的元素的上面。如果要修改UI元素的相對順序,可以通過在Hierarchy視圖中拖動元素進行排序。對UI元素的排序也可以通過在腳本中調用Transform組件上的SetAsFirstSibling、SetAsLastSibling和SetSiblingIndex等方法來實現(xiàn)。
(1)Render Mode:渲染模式
Screen Space-Camera:畫布以特定的距離放置在指定的相機前,UI元素被指定的相機渲染,相機設置會影響到UI的呈現(xiàn)。
Screen Space-Overlay:使畫布拉伸以適應全屏大小,并且使GUI控件在場景中渲染與其他物體的前方。如果調整屏幕大小或改變分辨率,畫布將會自動地改變大小以適應屏幕顯示。
World Space:該選項使畫布渲染于世界空間。該模式使畫布在場景中像其他游戲對象一樣??梢酝ㄟ^手動調整它的Rect Transform來改變畫布的大小,GUI控件可能會渲染于其他物體的前方或后方。
(2)使用Canvas Group組件(在Inspector視圖中單擊Add Component按鈕后搜索Canvas Group添加)可以對UI元素進行分組,方便統(tǒng)一管理。
Alpha:可調節(jié)該組UI元素的透明度
Interactable:選項可控制該組件是否接受輸入控制。
Blocks Raycasts:選項控制該組件是否作為碰撞器 RayCasts。注意這不適用于Phycics.Raycast,當要處理Canvas上UI元素的Raycast時應調用綁定在Canvas上的Ghaphic Raycaster組件的Raycast方法。
Ingore Parent Groups:用于控制是否忽略父對象上的Canvas Group設置。
在一個Unity工程中,對于所有GUI控件,一個畫布已足夠使用,但是在場景中組合使用多個畫布也是可行的。用戶也可以嵌套使用畫布,即可使一個畫布作為其他畫布的子對象。一個嵌套的畫布使用其父對象的渲染模式,是可以分別控制每一個畫布的透明度。
2、Rect Transform(矩形變換)
Rect Transform(矩形變換)是一種新的變換組件,適用于在所有的GUI空間上來代替原有的變換組件。
矩形變換區(qū)別于原有變換的地方是在場景中Transform組件表示一個點,而Rect Transform表示一個可容納UI元素的矩形,而且矩形變換還有錨點和軸心點的功能。
矩形變換的屬性和功能
屬性
功能
Pos(X,Y and Z)
定義矩形相當于錨的準心點位置
Width/Height
定義矩形的寬度和高度
Left,Top,Right,Bottom
定義矩形的邊緣相對于錨點的位置,錨點分離時會顯示在Pos和Width/Height的位置
Anchors
定義矩形在左下角和右上角的錨點