按钮组 - MRTK3

Button group

使用基于画布的新布局系统可以轻松构建灵活且响应迅速的按钮组。 以前,用户必须使用 ObjectBar 脚本沿单个轴布局一组子级,并且必须手动将每个子级添加到 ObjectBar 的托管子级列表中。

通过基于画布的 UX,你可以利用内置的基于 RectTransform 的布局系统轻松构建和管理 UI 组件的行、列和网格。 可以使用 HorizontalLayoutGroupVerticalLayoutGroupGridLayoutGroup UnityUI 组件构建按钮栏和网格。 子级将根据布局组中配置的约束、填充和选项自动布局。

按钮栏

要构建水平或垂直的按钮“栏”(或其他 UI 控件!),可以使用 HorizontalLayoutGroupVerticalLayoutGroupContentSizeFitter 构建简单的布局。

Configuring layout for a horizontal button bar

Configuring layout for a vertical button bar

请注意,这些自动布局组件的子级应该有一个 LayoutElement 组件,用于通知布局引擎每个子级的最小和首选大小。 我们的按钮预制件预装了这些组件,但你可能需要将它们添加到自己的自定义控件中,或者自定义最小和首选大小以满足需求。

按钮网格

要构建灵活的按钮网格,可应用与按钮栏相同的布局和设计,但改用了 GridLayoutGroup

Configuring layout for a button grid

要调整行数或列数,请选择想要的约束类型。

  • “固定列数”指定列数。 行数将根据集合中的项数重排。
  • “固定行数”指定列数。 行数将根据集合中的项数重排。
  • “灵活”会产生灵活的行数或列数,具体取决于在 ContentSizeFitter 中选择的拟合类型。 针对 ContentSizeFitter 中的两种拟合类型选择 Preferred size,再加上 Flexible 网格约束,使网格布局尽量呈方形/均匀,但会在必要时相应地添加行或列。

有关使用 UnityUI 布局系统的详细信息,可在此处查看文档。