gpt4 book ai didi

unity3d - 如何统一将 Canvas 设置为以世界单位为单位的特定大小?

转载 作者:行者123 更新时间:2023-12-05 01:18:37 33 4
gpt4 key购买 nike

假设我有一个设置为“世界空间”的 UI Canvas ,并且绝对位于我的立方体上方的世界中。

我的立方体在运行时调整了大小。

在不缩放 Canvas 的情况下,如何设置 Canvas 的大小以匹配我的立方体的已知世界单位宽度?

我知道您可以使用“ Canvas 单位”设置 Canvas :

var rect = canvas.GetComponent<RectTransform>();
rect.sizeDelta = new Vector2(200, 200);

但是,200x200 是 Canvas 单位,不是世界单位;我的立方体有 4 个单位宽; sizeDelta 应设置为多少?

我推测这与 CanvasScale 组件有关,但我无法弄清楚; referenceUnitsPerPixel 是 100,作为比例因子这是完全错误的,而 dynamicPixelsPerUnit 就像 1,这也是错误的。

最佳答案

你可以简单地做到这一点:

  • Canvas 组件的 Render Mode 属性设置为 World(您已经这样做了)
  • 移除CanvasScaler组件
  • 您的 Canvas 现在是一个 3D 对象:使用 RectTransform WidthHeight 设置它的大小

请记住,您的 Canvas 不会处理非常小的元素(默认 Image 为 100x100,这将比您的 Canvas).

希望这对您有所帮助,

关于unity3d - 如何统一将 Canvas 设置为以世界单位为单位的特定大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44136919/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com