版本:Unity5.4.2f1
Canvas(畫布)
手冊:https://docs.unity3d.com/Manual/class-Canvas.html
這個組件是代表UI布局和渲染的空間。所有UI元素必須是在一個有Canvas組件的對象下。當在沒有Canvas場景中創建一個UI元素時,同時也會生成一個Canvas對象。
參數:
Pixel Perfect (Screen Space modes only):不使用反鋸齒渲染UI
Render Camera (Screen Space - Camera mode only):選擇一個繪制UI的攝像機
Plane Distance (Screen Space - Camera mode only):放置UI平面在攝像機前面的距離大小
Event Camera (World Space mode only):處理UI事件的攝像機
Receives Events:是否通過該攝像機處理UI事件
補充:
一個場景中只有一個Canvas是足夠的,但也允許同時存在多個Canvas。也可以嵌套多個Canvas,但嵌套的Canvas是和父級的渲染方式一樣。
嵌套的Canvas截圖:
通常是把UI元素作為一個繪制在屏幕上的圖形,而沒有把UI元素當作為一個3D空間內的對象。
在Unity中不僅支持使用傳統的渲染概念,同時也支持把UI元素作為一個3D對象的渲染思想。
Screen Space - Overlay
在這種模式下,Canvas是自適應屏幕的,同時也不需要依賴任何實際的場景或攝像機。UI會被最后渲染。
注意:選擇這種模式,需要讓Canvas對象放在Hierachy視圖的最上層層級(即transform.parent = nil)。否則,UI可能會消失。
Screen Space - Camera
這種模式下,Canvas會根據UI平面與攝像機的截面的縮放而自適應。在UI平面前3D對象的會顯示在UI前,而在后面的會顯示在UI平面的后面。
World Space
在這種模式下,Canvas會被作為一個Plane對象存在。此時,Canvas不用面向攝像機,角度可以任意調整。同時,Canvas不會再自適應,而是需要控制RectTransform的Width和Height進行縮放。
RectTranform
手冊:https://docs.unity3d.com/Manual/class-RectTransform.html
RectTransform繼承Transform,用於2D對象上。是個矩形狀。
參數
- Anchors :布局(縮放)錨點。Min代表左下角,Max代表右上角。(以父級對象的矩形左下角為原點)
- Pivot : 2D對象的中心點