1. 程式人生 > >unity 2D 正交攝像機下 uGUi 比例與自適應問題

unity 2D 正交攝像機下 uGUi 比例與自適應問題


unity自帶的UGui普遍都有rect transform屬性

orthographic攝像機下 如果size是1 那麼半個高度的ugui canvas就是1單位長度, 一個cube是1米 1米1單位
Unity2D中攝像機鏡頭的尺寸決定了我們實際看到遊戲內容的多少,Unity2D中這個比例的預設值是100,即100畫素等於1單位,1個單位是1米。如果我們的遊戲螢幕有640畫素高,那麼實際換算成單位高度則是6.4個單位,當我們攝像機的 Size值是3.2時,攝像機大小剛好與螢幕大小相等。

已知canvas有三種模式

然後我採用的是Screen Space - camera

因為overlay模式不用攝像機都會顯示UI,所以不能使用兩個攝像機方式將其他物體顯示在其之前

而world space則更多利用在3D場景中,如果攝像機轉動ui也會出現問題,需要比較多的設定才行

然後設定UI Scale Mode 為Scale With Screen Size(下面填上你需要的解析度 我設定的是1920*1080)

注意主攝像機必須是正交攝像機而且size必須是1080/2/100也就是5.4 才能正常

而ui的移動(基於畫素可以使用下面兩種方式a b都是Button)

a.transform.Translate(960.0f/100.0f,0,0);
b.GetComponent<RectTransform>().localPosition = new Vector3(960,0,0);

另外放上一張自己畫的ugui和rect transform的理解圖