布局元素:布局元素不会变动自己的大小,而是由布局组(水平、垂直、网格)根据布局元素设置的属性来分配对应的尺寸及所在位置。
属性
IgnoreLayout:是否忽略布局,本布局元素不参与布局组的布局
MinWidth:最小的宽,宽度不能小于这个值
MinHeight:最小的高,高度不能小于这个值
PreferredWidth:最适宜的宽,如果有足够的空间,该布局元素的首选宽度。
PreferredHeight:最适宜的高,如果有足够的空间,该布局元素的首选高度。
FlexibleWidth:伸缩宽的权重,如果有额外的可用空间,该布局元素应该分配额外的相对宽度。
FlexibleHeight:伸缩高的权重,如果有额外的可用空间,该布局元素应该分配额外的相对高度。
LayoutPriority:布局优先级
最小值Minum 最先被分配,不论父物体大小,怎么变化,自身的大小不能小于这个值。
Preferred 如果父类容器显示开Minnum还剩余空间,就会按照Preferred和Minum差值的比值进行分配剩余空间。
Flexible如果Preferred分配完成还剩余空间会按照flexible的比值继续分配剩余空间。
布局控件代码是实现了ILayoutElement接口。
具体值可以在unity Inspector窗口的最下面可以看到,
如果不显示,可以拖动1位置的横线向上拉,默认窗口很小需要拖大才能看到
然后把2位置的下拉箭头切换到LayoutProperties
基础控件Image和Text都实现了这个接口
Text:MinWidth,MinHeigh都是0。PreferredWidth全部显示在一行的宽度,PreferredHeight需要的高度。FlexibleWidth,FlexibleHeight禁用状态
Image:MinWidth,MinHeigh都是0。PreferredWidth,PreferredHeight返回精灵Sprite的大小,如果是sprite设置是slided或者tiled模式将返回可能的最小计算大小 ,就是去掉中间以后边缘的大小,如果是设置的Sliced大小就是Sprite的大小,FlexibleWidth,FlexibleHeight禁用状态。
可以通过添加LayoutElement重新定义这几个值。
至于这几个值的大小,可以参照下面布局组的讲解https://blog.csdn.net/HexianWHH/article/details/119359958