假設我有一個UI畫布,它被設置爲'世界空間',並且絕對位於我的立方體上方的世界中。如何在統一的世界單位中將Canvas設置爲特定尺寸?
我的立方體在運行時調整大小。
沒有縮放畫布,我如何設置畫布的大小以匹配我的立方體的已知世界單位寬度?
我知道,你可以使用設置在「畫布單位的畫布:
var rect = canvas.GetComponent<RectTransform>();
rect.sizeDelta = new Vector2(200, 200);
然而,200x200的是帆布的單位,而不是世界的單位;我的立方體寬4個單位; sizeDelta
應該設置爲什麼?
我認爲這與CanvasScale
組件有關,但我無法弄清楚; referenceUnitsPerPixel
是100,這是完全錯誤的比例因子,並且dynamicPixelsPerUnit
就像1,這也是錯誤的。
我不太明白爲什麼這會起作用(或者更重要的是,Canvas Scaler實際上是這樣做,使得它現在不工作),但這完全有效,謝謝! – Doug
基本上,** CanvasScaler **在這裏可以自動調整您的用戶界面到多種屏幕尺寸/分辨率。在你的情況下(以及大多數情況下,當_RenderMode_設置爲_World_時),不需要調整它,因爲你可以用世界單位調整它:例外情況可能是例如3D HUD的寬度,如果你希望它「填充「4:3,16:9或21:9屏幕上的整個屏幕。希望我已經清楚了:否則我會試着在我的回答中進一步解釋它:) – Kardux