假设我有一个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