Unity學習筆記(07):UGUI的Canvas、Image組件

Unity的GUI包

在Unity中完成2D界面 有兩種方式
有自帶的GUI 還有開源的第三方包NGUI 其中 NGUI被Unity廣泛使用

在Unity5.x之後 Unity和NGUI聯合開發了UGUI
因此 Unity已經內置了UGUI

🚩在3D世界顯示2D元素

在Unity中 3D的單位是m(米) 而2D的單位是px(像素)
有兩種方式可以實現在3D世界顯示2D元素:

創建一個2D精靈元素Sprite
在Hierarchy右鍵 -> 2D -> Sprite
將圖片的類型改爲2D:
記得點擊Apply應用
在這裏插入圖片描述
Pixels Per Unit定義了多少像素爲1世界單位
100 即意爲 100像素爲世界的1m(米)
在這裏插入圖片描述
再將圖片拖到Sprite節點的Renderer/Sprite即可:
在這裏插入圖片描述

計算Sprite和Camera相距多少才能完全充滿屏幕

在這裏插入圖片描述
公式:

z=h/(2*tanθ)

z=距離
h=屏幕高度
θ=屏幕張開角

由於屏幕張開角爲60°
在這裏插入圖片描述
屏幕高度爲1600px=16m
在這裏插入圖片描述
因此 z=h/(2tan30°)=16/(2tan30°)≈13.4


在這裏插入圖片描述

還有另一個方式:

若在更遠或更近的距離 則精靈圖進行縮放
比如 在18m的距離 在13.4能夠全屏 則縮放值爲18/13.4≈1.34
在這裏插入圖片描述
這樣計算 比較複雜 而UGUI正能解決該問題

十一、Canvas

UGUI提供了Canvas節點 該節點負責2D元素的比例縮放
以Canvas爲根節點的UI樹 所有UI元素都掛在這棵樹上 對Canvas進行比例縮放以實現正確顯示2D元素

UGUI下面除了Canvas 還有控件時間響應 如此 組成了UGUI體系

Unity將所有UGUI元素放入UI標籤下了 因此 若要創建 只需要在Hierarchy右鍵 -> UI -> Canvas即可創建Canvas
與此同時還會自動創建一個EventSystem 該節點用於接收UI事件
在這裏插入圖片描述
當然 創建UI下的任何物體 都會自動帶上Canvas父節點

🚩Canvas的組件

Canvas下帶有四個組件:
在這裏插入圖片描述

Rect Transform

每個節點都需要帶有transform組件 而Rect Transform繼承自transform
Canvas的transform一旦被創建 則無法進行任何修改

Canvas

Canvas繪製2D元素的設置
Render ModeScreen Space - Overlay覆蓋到屏幕上
在畫完所有物體後將該層覆蓋到屏幕的最上方
Camera即使隱藏了 或者無法拍攝 2D元素照樣能夠顯示
在這裏插入圖片描述
Pixel Perfect 顯示像素
勾選上後 顯示像素會更加好
在這裏插入圖片描述
Target Display控制繪製到哪個屏幕上
在這裏插入圖片描述
Canvas Scaler 控制2D元素的縮放策略
在這裏插入圖片描述
Constant Pixel Size根據像素控制
Constant Physical Size根據物理尺寸控制
在這裏插入圖片描述
Scale With Screen Size根據屏幕尺寸控制
縮放公式:
Match是縮放因子 控制根據什麼縮放
在這裏插入圖片描述

Graphic Raycaster與事件碰撞相關
在這裏插入圖片描述
在Canvas下創建一個Image節點 即可將圖片顯示其上了
在這裏插入圖片描述
在這裏插入圖片描述
Render ModeScreen Space - Camera由攝像機拍攝
此時由於沒有選擇Camera 因此無效
在這裏插入圖片描述
因此需要選擇一個用於渲染的攝像機:
在這裏插入圖片描述
此時Camera隱藏 則2D場景也無法顯示了
在這裏插入圖片描述
Plane Distance決定了2D和3D物體的遮擋關係
若該值大於3D元素和攝像機的距離 則3D元素會顯示在2D元素的前方
反之 若該值小於3D元素和攝像機的距離 則3D元素會顯示在2D元素的後方
在這裏插入圖片描述
Render ModeWorld Space使用世界空間
此時距離會自動換算
在這裏插入圖片描述
World Space是自己控制縮放的比例 自己計算
可以將2D元素和3D元素融合在一起

🚩Image組件

用於顯示非交互式的組件

可以添加材質:
在這裏插入圖片描述
此時圖片無需精靈圖了:
在這裏插入圖片描述
創建一個材質球 Create -> Material
拖入即可使用:
在這裏插入圖片描述


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章