假设我有一个UI Canvas,它被设置为' World Space'绝对位于我的立方体之上的世界。
我的多维数据集在运行时调整大小。
如果没有缩放画布,如何设置画布的大小以匹配我的多维数据集的已知世界单位宽度?
我知道您可以在画布单元中设置画布。使用:
var rect = canvas.GetComponent<RectTransform>();
rect.sizeDelta = new Vector2(200, 200);
然而,200x200是帆布单位,而不是世界单位;我的立方体是4个单位宽; sizeDelta
应该设置为什么?
我认为这与CanvasScale
组件有关,但我无法弄明白; referenceUnitsPerPixel
为100,作为比例因子完全错误,dynamicPixelsPerUnit
就像1,这也是错误的。
答案 0 :(得分:4)
你可以简单地做到:
请记住,您的画布不会处理非常小的元素(默认图片是100x100,这将比您的 Canvas )。
希望这有帮助,
答案 1 :(得分:3)
如果您希望它具有以米为单位的特定宽度,则可以使用meter_size / canvas_width计算所需的比例。例如,如果您希望它宽2米,画布宽度为800,那么您将得到2/800 = 0.0025。然后,将“画布上的矩形变换”的“缩放”属性设置为0.0025,对于X,Y和Z,以确保它均匀缩放。