假设我有一个 UI Canvas,它设置为“世界空间”并且绝对位于我的立方体上方的世界中。
我的立方体在运行时调整大小。
在不缩放画布的情况下,如何设置画布的大小以匹配立方体的已知世界单位宽度?
我知道您可以使用以下方法在“画布单位”中设置画布:
var rect = canvas.GetComponent<RectTransform>();
rect.sizeDelta = new Vector2(200, 200);
Run Code Online (Sandbox Code Playgroud)
然而,200x200是画布单位,而不是世界单位;我的立方体有 4 个单位宽;sizeDelta应该设置为什么?
我认为这与组件有关CanvasScale,但我无法弄清楚;referenceUnitsPerPixel是 100,这作为比例因子是完全错误的,dynamicPixelsPerUnit就像 1,这也是错误的。
你可以简单地这样做:
请记住,您的Canvas不会处理非常小的尺寸元素(默认Image是 100x100 ,它将比您的Canvas大得多)。
希望这可以帮助,
| 归档时间: |
|
| 查看次数: |
10768 次 |
| 最近记录: |