目錄
01.Canvas對象和EventSystem對象
Canvas對象
所有遊戲節目裏的UI元素(紋理、圖像、按鈕、滑動條等)都必須位於Canvas對象下成爲其子物體,Canvas又叫做畫布
一個場景裏可以存在多個Canvas,也可以將其他的Canvas對象作爲當前Canvas對象的子節點。
在場景裏面創建一個Canvas時,會自動生成一個EventSystem對象。
Canvas的RectTransform組件的屬性不可直接修改,系統會根據畫面的大小自動設置
EventSystem對象
EventSystem對象可將系統中發生的鍵盤、遊戲搖桿、觸摸屏等傳入的信息傳遞給Canvas包含的UI元素。
除了上面兩個組件外,Event System也包含TouchInputModule組件等
02.Canvas組件
Canvas組件可以將遊戲所需要的各種UI元素放置到畫面上,並進行渲染。根據渲染模式的不同,UI元素的畫面配置方式也不同。
Screen Space - Overlay
默認值,UI元素都位於最頂層,可以根據畫面分辨率的設置自動調節位置。
Screen Space - Camera
與前一個類似,但可以設置渲染UI的相機。這樣就可以製作有透視感的UI界面等效果。
但是要注意修改UI相機的設置,避免與場景內主相機衝突。
World Space
可以向場景內其他遊戲物體直接添加UI對象,如製作HUD。此時Canvas不再受RectTransform組件的影響,而受相應遊戲物體位置的影響。
03.RectTransform組件
UI元素必須擁有的一個組件,類似於其他遊戲物體的Transform組件
RectTransform組件包含錨點(Anchors)、樞紐(Pivot)、大小(W、H)、位置(PosX、PosY、PosZ)、旋轉、比例等信息。
用一個Panel來舉例說明
Panel中心的圓形(黃圈裏的)爲其正中心,是佈局、排列UI元素時參考的基準位置,這個圓圈也是旋轉軸心。
拖拽Panel的四個角(綠圈裏的)可以調節Panel的大小,點擊鼠標並按Alt拖拽可以同時調整4邊的大小,按住Shift拖拽可以按當前Panel的比例進行大小調節
在Panel的周圍有四個白色的小三角(紅圈裏的)是以Panel的父對象爲基準的定位點(錨點)。UI對象的定位點都是以其父對象爲基準的。
Anchor Preset(預設值)
Anchor Preset可將各UI元素的排列與大小等設置定義爲預設。
按鍵盤上的Shift鍵和Alt鍵會出現不同的選項:
不按任何鍵:默認錨點預設
按Alt鍵:將當前選定UI移動到選擇的預設位置進行排列
按Shift鍵:只改變錨點和UI元素的中心點位置不移動UI
按Alt+Shift鍵:將UI元素的中心移動到與錨點相同的位置
注意:在移動錨點或是中心點時要將模式切換至如下,否則會無法移動
AnchoredPosition屬性
RectTransform屬性頂端的PosX、PosY、PosZ是以相應的錨點爲基準顯示當前UI元素的位置。
Width、Height顯示相應UI元素的寬、高
當改變UI元素的錨點設置後這幾個屬性值的名字會有所變化
Anchor屬性
通過Anchor屬性可設置調整UI元素的大小和對其方式。Min(X,Y)和Max(X,Y)是錨點的位置,取值均爲0.0f ~ 1.0f
其他屬性
04.Image組件
Image組件可以爲畫面添加紋理,但必須在Unity中將紋理轉換爲Sprite格式
Image組件的屬性
Image的4種顯示方式
Simple
用於固定圖像長寬比例,主要適用於裝飾畫面的圖片
固定原圖像長寬比例的選項
Sliced
即使調整圖像的大小,其邊框外圍部分的圖像也不會變形,只有中間切片的圖像纔會隨着調整的大小而縮放。
適用此選項要注意先將圖片在Sprite Editor中進行設置。
Fill Center屬性:勾選:顯示原圖像九宮格切片的中間圖像
不勾選:只顯示輪廓
Tiled
讓圖片不斷重複鋪滿整個畫面,不受Image大小影響
Filed
可以使圖片沿特定方向逐漸顯示直至填滿,可以用來製作血量條和技能冷卻的UI
RawImage組件
與Image相似,但主要是用於設置UI界面的靜態背景。
05.Button組件
主要屬性
Transition屬性
爲Button的狀態變換設置外觀上的變化。
Button狀態:默認、獲取焦點、按下、禁用
變化方式:顏色、圖片、動畫
注意:選擇動畫方式後點擊AutoGenerateAnimation按鈕,Unity會自動爲Button生成一個動畫控制器
Navigation屬性
當UI界面裏有多個Button時,Navigation用於設置如何通過鍵盤按鈕移動當前焦點。
Explicit:顯示指定,可以直接指定焦點要移動到的下一個Button
途中黃色的線條表示焦點移動的路徑。
如果不想通過移動焦點選定某個按鈕,可以設置Button的Visualize屬性(相當於開關)
ButtonEvent
點擊事件的觸發,Unity可以爲一個Button設置多個點擊事件。
06.Text組件
基本屬性
Text Effects
通過Outline組件可以爲文字添加陰影等效果。
07.ScrollRect組件、Mask組件
ScrollRect組件區域內的UI元素可以滾動,需要進行滾動的UI元素作爲ScrollRect所在對象的子物體存在
主要屬性
Mask組件
Mask組件相當於一個遮罩,可以將ScrollRect顯示以外的地方隱藏
Mask組件通常是與Image組件一同使用時纔有效果