【一文读懂】Unity布局组件:Horizontal Layout Group(水平布局组),Vertical Layout Group(垂直布局组),Grid Layout Group(网格布局组)

目录

常用布局组件

1.Horizontal Layout Group(水平布局组)

1)作用

2)属性

3)注意

4)举例

2.VerticalLayout Group(垂直布局组)

1)作用

2)属性

3)注意

4)举例

3.Grid Layout Group(网格布局组)

1)作用

2)属性

3)注意

4)举例

制作一个简单的二级菜单,实现展开关闭


       本篇文章来学习一下Unity常用的布局组件,主要包括Horizontal Layout Group(水平布局组),Vertical Layout Group(垂直布局组),Grid Layout Group(网格布局组)。这些布局组件常与Content Size Fitter、Layout Element组件一起使用。

常用布局组件

1.Horizontal Layout Group(水平布局组)

1)作用

       将子布局元素水平有序排列。

2)属性

Padding填充

布局组边缘内的内边距

Spacing间距

布局元素之间的间距

Child Alignment子对齐

如果子布局元素未填充所有可用空间,则用于子布局元素的对齐方式。

Control Child Size控制子项大小

布局组是否控制其子布局元素的宽度和高度

Use Child Scale使用子比例

布局组在调整元素大小和布局元素时是否考虑其子布局元素的比例。Width和Height对应于每个子布局元素的Scale>X和Scale>Y值Rect Transform组件。不能使用Animator控制器

Child Force Expand子项强制扩展

是否强制子布局元素拓展

3)注意

       宽度由各自的最小宽度、首选宽度和灵活宽度根据以下方式进行确定:

①所有子布局元素的最小宽度相加,它们之间的间距也相加。结果是Horizontal Layout Group的最小宽度

②所有子布局元素的首选宽度相加,它们之间的间距也会相加。结果是Horizontal Layout Group的首选宽度。

③如果Horizontal Layout Group处于其最小宽度或更小,则所有子布局元素也将具有其最小宽度。

④Horizontal Layout组越接近其首选宽度,每个子布局元素也就越接近其首选宽度。

⑤如果Horizontal Layout Group的宽度大于其首选宽度,它将根据子布局元素各自的灵活宽度按比例分配额外的可用空间。

4)举例

       想使用子物体的宽高,且让子物体水平排列。

2.VerticalLayout Group(垂直布局组)

1)作用

       将子布局元素水平有序排列。

2)属性

Padding填充

布局组边缘内的内边距

Spacing间距

布局元素之间的间距

Child Alignment子对齐

如果子布局元素未填充所有可用空间,则用于子布局元素的对齐方式

Control Child Size控制子项大小

Layout Group 是否控制其子布局元素的宽度和高度

Use Child Scale使用子比例

布局组在调整元素大小和布局元素时是否考虑其子布局元素的比例Width和Height对应于每个子布局元素的Scale>X和Scale>Y值Rect Transform组件。不能使用Animator控制器

Child Force Expand子项强制扩展

是否强制子布局元素展开以填充额外的可用空间

3)注意

       高度由各自的最小高度、首选高度和灵活高度根据以下方式进行确定:

①所有子布局元素的最小高度相加,它们之间的间距也相加。结果是 Vertical Layout Group 的最小高度。

②所有子布局元素的首选高度将相加,并且它们之间的间距也会相加。结果是 Vertical Layout Group 的首选高度。

③如果 Vertical Layout Group 处于其最小高度或更小,则所有子布局元素也将具有其最小高度。

④Vertical Layout 组越接近其首选高度,每个子布局元素也就越接近其首选高度。

⑤如果 Vertical Layout Group 高于其首选高度,它将根据子布局元素各自的灵活高度按比例分配额外的可用空间。

4)举例

       想使用子物体的高,并让子物体的宽度扩充到父物体的大小,使其垂直排列并居中显示。

3.Grid Layout Group(网格布局组)

1)作用

       将子布局元素有序放置在网格中。

2)属性

Padding填充

布局组边缘内的内边距

Cell Size单元大小

用于组中的每个布局元素的大小

Spacing间距

布局元素之间的间距

Start Corner起点角

第一个元素所在的角

Start Axis起始轴

沿哪个主轴放置元素。Horizontal将在开始新行之前填充一整行。Vertical将在开始新列之前填充整个列

Child Alignment子对齐

布局元素未填充所有可用空间时用于布局元素的对齐方式

Constraint约束

将网格限制为固定的行数或列数,以帮助自动布局系统

3)注意

       与其他布局组不同,网格布局组会忽略其包含的布局元素的最小、首选和灵活大小属性,而是为所有元素分配一个固定大小,该大小由网格布局组本身的Cell Size属性定义。

4)举例

       想要使子物体三行三列显示。

制作一个简单的二级菜单,实现展开关闭

1.添加一个空物体MenuList,设置好位置后,添加Vertical Layout Group垂直布局组件并进行相应设置,用于展示一级菜单的内容。

2.MenuList下新建空物体FirstMenu,给FirstMenu添加Vertical Layout Group垂直布局组件,并进行相应设置。FirstMenu为每个一级菜单的内容,包括一级菜单的Toggle和二级菜单的内容。

3.FirstToggle为Toggle,设置初始为开启状态,即勾选Is On,给其添加事件,当Toggle值改变时,SecondMenu的显隐会发生变化。并给FirstToggle添加Layout Element布局元素组件,进行相应设置。

4.给SecondMenu添加Vertical Layout Group垂直布局组件,并进行相应设置。

5.给所有的二级Toggle添加Layout Element布局元素组件,进行相应设置。如SecondToggle。

       效果如下:

       具体可以查看Unity官方文档

       好了,本次的分享到这里就结束啦,希望对你有所帮助!优秀!

猜你喜欢

转载自blog.csdn.net/grapefruit_lyy/article/details/142211434