【发布时间】:2021-10-28 17:39:39
【问题描述】:
我觉得我不理解 Unity 2020.3.21 中的 Vertical Layout Group 组件,我希望有人能解释我所缺少的。
我有一系列运行时控制的 UI 组件,我想从上到下垂直显示。我需要能够在运行时打开和关闭这些组件,并让父垂直布局组大小自动更新为所有活动子项的高度。这正是垂直布局组应该处理的事情,对吧?
当我构建一个简单的示例时,我看到垂直布局组正确地将子级定位在垂直列表中。然而,它在测量自己的身高时完全忽略了孩子的大小。这是一个问题,因为我希望能够将此容器放入 Scroll View 中——如果高度不准确,则 Scroll View 无法正常工作。
这是我的演示。我在 VLG 中有一系列孩子,他们的 RectTransform 中都有明确的设定高度。它们都是 VLG 的直接子代。他们都没有使用LayoutElement;所有高度都在RectTransform 中明确定义。这是场景层次结构,括号中是每个组件的编译时 RectTransform 高度。
Canvas (325x812)
GameObject (812)
Vertical Layout Group (100)
Text (45)
Spacer (100)
Text Input (48)
Spacer (20)
Button (48)
这是我的 VLG 设置:
当我运行游戏时,我可以在Scene 选项卡中看到每个 UI 对象的轮廓。孩子们显然已经确定了他们的身高。然而,VLG 的静态编译时高度仍然是 100,而不是子高度的总和。
我是否遗漏了有关垂直布局组如何工作的内容?我怎样才能让这个 VLG 将它的 Height 属性设置为运行时它的活动子代的实际总高度?
【问题讨论】:
标签: unity3d