UGUI源码解析——ILayoutElement
ILayoutElement:挂载了实现ILayoutElement接口的组件的对象被视为一个布局元素,布局元素不直接设置布局,只计算自身属性,设置布局由布局控制器设置
源码解析
CalculateLayoutInputHorizontal:先计算水平布局的属性值,当调用这个方法时,子节点已经有了最新的水平布局输入。
1 | void CalculateLayoutInputHorizontal(); |
CalculateLayoutInputVertical:后计算垂直布局的属性值,当调用这个方法时,子节点已经有了最新的垂直布局输入。
1 | void CalculateLayoutInputVertical(); |
minWidth:此布局元素属性分配最小的宽度
1 | float minWidth { get; } |
preferredWidth:如果有足够的空间,应该分配这个布局元素的首选宽度,preferredWidth可以设置为-1来移除大小
1 | float preferredWidth { get; } |
flexibleWidth:布局元素在有额外可用空间时应该分配的额外相对宽度
1 | float flexibleWidth { get; } |
minHeight:此布局元素属性分配最小的高度
1 | float minHeight { get; } |
preferredHeight:如果有足够的空间,应该分配这个布局元素的首选高度,preferredHeight可以设置为-1来移除大小
1 | float preferredHeight { get; } |
flexibleHeight:布局元素在有额外可用空间时应该分配的额外相对高度
1 | float flexibleHeight { get; } |
layoutPriority:获取该组件的布局优先级,当一个游戏对象上的多个组件实现了ILayoutElement接口时,确定到底由哪个组件提供布局属性,值越大优先级越高,小于0的值将被忽略。通过这种方式,组件可以只重写选中的属性,让剩余的值为-1或其他小于零的值。
1 | int layoutPriority { get; } |
评论