Unity 中的布局问题

Layout issues in Unity

我有一个带有 Content Size Fitter 的垂直布局组,children 一个 TextMeshPro 和一个 ScrollView。

(TextMeshPro不是问题,我放它只是为了说明我需要一个Vertical Layout Group,所以算了)

在 ScrollView 中,我有另一个 Text 元素。此 Text 元素会垂直和水平扩展。我想让 ScrollView 滚动水平度,我想让 ScrollView 调整到高度。

所以我希望 ScrollView 与其所有内部元素的高度相同。这是我的目标。我不想要脚本解决方案,我希望能够直接从层次结构中进行,您可以在层次结构中定义所有元素的布局。

但是我无法做到这一点,我的想法是将带有 Content Size Fitter 的 Vertical Layout Group 放在 ScrollView 中,但如果这样做,我将无法再水平滚动文本,因为它一直在根据垂直布局组中定义的对齐方式重新对齐。

ps。一开始你可能会想,但是水平 Content Size Fitter 的文本不会垂直拉伸,有什么需要根据文本的高度来放大 ScrollView 呢?实际上我并没有真正使用 Text 组件,我使用了一个专门为特定字体创建的类似组件,它也垂直扩展文本,为此我需要 ScrollView 的高度动态适应 child 组件,但我重复一遍,使用垂直布局组,然后我就不能再滚动了。

解决方案?

排版系统我做的不错。在 Canvas 上禁用 Pixel Perfect 修复了文本重新对齐的问题。