Unity:UGUI之Canvas詳解(屏幕適配)


新建一個畫布 Canvas

1)第一個組件:RectTransform 

① Transform的子類

② Anchors 錨點:屏幕適配重點!設置錨點,想象錨點類似一根釘子,把一塊彈力布某個角釘住,使勁拉伸,被釘住的這個角不會變。點開錨點框后按住Alt鍵,可以自動對齊/平鋪。

 ③ 獲取UI的寬高最安全的方式

RectTransform rect = transform.GetComponent<RectTransform>();
Debug.Log("獲取UI的寬:"+rect.rect.width);
Debug.Log("獲取UI的高:"+rect.rect.height);

 

 左邊按下是藍圖模式,用來控制Rotation和Scale的,旋轉和縮放,Panel的大小不會變。

(Panel指RectTool模式下物體的邊框,即新建一個空物體,只添加RectTransfrom組件)

右邊R按下是原始編輯模式,用來控制Anchors和Pivot。

2)第二個組件:Canvas

① Render Mode

Screen Space - Overlay:顯示在所有層級之上。畫布會縮放來適應屏幕,直接渲染而不參考相機(沒有相機也能渲染)。

Screen Space - Camera:這個模式要參考相機,UI和相機的距離。例如在UI層上面繪制linerender,因為linerender是3D的,要把linerender顯示在UI層前面才能看見,此時就需要此模式,並且把UI距離調到比linerender Z軸更遠處。

 World Space:將UI視為平面渲染。其他對象可以位於UI后面、中間穿透、前面。畫布大小取決於與相機視角和距離。例如顯示在人物頭頂的血條。

 3)第三個組件:Canvas Scaler 畫布縮放器  屏幕適配重點!

Q:之前講過設置錨點可以讓圖標始終保持在四個角,圖標位置正確,但圖標大小卻不會隨屏幕大小變化,如果屏幕很小,圖標就會過大遮擋住畫面。

那么怎么讓圖標能隨屏幕大小放大縮小呢?

A:Canvas Scaler組件,UI Scale Mode 選擇 Scale With Screen Size模式。

Q:這樣就正確了嗎?你會發現640*960豎屏設置好的圖標,到了960*640橫屏還是會變大。

A:這是因為Match參數默認是0,即以width為標准,將這個參數調至0.5,即以width和height為標准。

你以為這樣就對了嗎?實際上只有Expend模式是按比例拉伸,其他兩個模式在極端情況下都會發生裁切。如果想要始終顯示所有的UI就要選擇Expend。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM