Unity的自动布局系统(Auto Layout)基于布局元素(Layout Element)和布局控制器(Layout Controller)来实现,布局元素的大小由布局控制器决定。
Layout Element
一个布局元素定义了以下的属性:
- (Minimum)最小宽/高
- (Preferred)首选宽/高
- (Flexible)可选宽/高
布局元素的大小遵循以下的原则进行计算:
- 首先,给布局元素分配最小宽/高
- 接着,如果空间足够,给布局元素分配首选宽/高
- 最后,如果有额外空间,给布局元素分配可选宽/高
每个具有Rect Transform的Game Object都可以看作一个布局元素,其最小、首选、可选宽高都默认设置为0,添加Layout Element组件可以改变这些属性的值。
Layout Controllelr
一个布局控制器会同时控制其自身的布局元素(布局控制器的Game Object)及其子布局元素。有两种常用的布局控制器,分别是Content Size Fitter和Aspect Ratio Fitter。
Layout Group
布局组也是