我觉得我不了解 Unity 2020.3.21 中的 Vertical Layout Group
组件,我希望有人能解释我缺少的内容。
我有一系列运行时控制的 UI 组件,我希望它们从上到下垂直显示。我需要能够在运行时打开和关闭这些组件,并让父垂直布局组大小自动更新为所有事件子组件的高度。这正是垂直布局组应该处理的事情,对吧?
当我构建一个简单的示例时,我看到垂直布局组将子项正确定位在垂直列表中。然而,它在测量自己的高度时完全忽略了 children 的体型。这是一个问题,因为我希望能够将此容器放入 ScrollView 中——如果高度不准确,则 ScrollView 无法正常工作。
这是我的演示。我在 VLG 中有一系列 child ,他们的 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 对象的轮廓。 children 显然已经确定了他们的高度。然而,VLG 仍然具有 100
的静态编译时高度,而不是子高度的总和。
我是否遗漏了有关垂直布局组如何工作的信息?我怎样才能让这个 VLG 在运行时将它的 Height
属性设置为它的事件子项的实际总高度?
最佳答案
关于unity3d - Unity Vertical Layout Group 高度不计算子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69758674/