Unity 中具有自动调整单元格大小的网格

问题描述 投票:0回答:1

在 Unity 中,我想在 UI/Canvas 场景中实现以下目标:

标题文本 - 使用可用屏幕高度的 10%,因此字体大小应相应调整。

在剩余的 90% 中,添加两行,每行有 3 个 Cat 游戏对象。每个对象的高度应为 (H - 3s)/2,其中 H 是屏幕高度的 90%,s 是每个对象之间的间距。该网格应在屏幕上水平和垂直居中。

这在 Unity 中可能吗?我已经搞乱了

Grid Layout Group
组件,但它似乎非常有限 - 显然没有自动单元格大小的选项。如果我必须用脚本来做这件事也很好。

unity-game-engine unity-editor
1个回答
0
投票

首先将画布缩放器组件设置为随屏幕尺寸缩放。输入您的参考分辨率,设置为与编辑窗口分辨率相同的尺寸。

canvas scaler edit resolution

对于用户界面的结构,在画布中创建一个空对象作为包装器。将其大小设置为您希望这部分 ui 占据的总大小。现在画布有了一个可以在缩放 ui 时使用的参考。

接下来将另一个空对象添加到名为 header 的包装器中。将其锚定到窗口顶部并将其高度设置为窗口总高度的 10%。添加一个子 TextMeshPro 文本元素,并将其锚点设置为全部拉伸,并将 4 个边设置为 0。根据您的喜好配置文本,然后选中“自动调整大小”复选框。

接下来在主体的包装器内创建另一个空对象。将其设置为拉伸全部并将“顶部”设置为标题的高度,其余部分设置为零。在此主体包装器中,添加“垂直布局组”组件。

现在向主体添加一个名为 row 的新空对象。该对象将由主体上的垂直布局组控制。当您添加更多行时,它们会自动堆叠。您可以通过垂直布局组组件控制行的缩放和定位方式。

现在在行中添加子对象。如果您希望这些子级的间距相等,请将“水平布局组”组件添加到该行。您可以从此布局组件控制子布局和比例。

ui hierarchy

为了添加间距,“间距”字段控制元素之间的间距。要在前后留出空间,请使用“填充”。

ui

这 2 个布局组组件非常有用,可以嵌套以对 ui 的特定部分进行精细控制。

© www.soinside.com 2019 - 2024. All rights reserved.