UGUI简单易懂理解Layout Element组件
Layout Element组件需要结合Layout Group的Control Child Size功能使用,以Height为例;
假设父节点A的Height=100,其下有两个Child(a、b)
Min Height:最小高度
- 实际高度<Min Height时,强制以Min Height为准,这个准则最高;
Preferred Height:期望高度
- 空间足够分配时,Height=Math.Max(MinHeight,PreferredHeight),即如果PreferredHeight<MinHeight,以MinHeight为准;
- 全部Child的PreferredHeight之和,不能超过父节点高度;
案例:a的Preferred Height=100,b的Preferred Height=100,那么就会按比重分配,a、b的Height均为50,即Height=A_Height * a_PreferredHeight/(a_PreferredHeight + b_PreferredHeight)
- 如果同时设置Min Height和Preferred Height,两种情况:
- 全部Child的Preferred Height之和,小于父节点高度,则相安无事,a、b各按自己的Preferred Height设置,但Preferred Height低于Min Height,以Min Height为准;
- 全部Child的Preferred Height之和,大于父节点高度,按计算公式Height=A_Height * (a_PreferredHeight+a_MinHeight)/(a_PreferredHeight + a_MinHeight + b_PreferredHeight),为什么把PreferredHeight和MinHeight叠加计算,我也不知道;
Flexible Height:剩余空间填满比重
- 全部Child的Preferred Height之和,小于父节点高度,即父节点还有空间没有占满,就会把剩余空间按Flexible Height比重分配;
案例:a的Preferred Height=50、Flexible Height=1,b的Preferred Height=30、Flexible Height=3,则还剩余20高度,20高度再按1/4和3/4比例分配给a和b,最终a_Height:50+5=55,b_Height:30+15=45,很好理解;
- 全部Child的Preferred Height之和,大于父节点高度,没有剩余空间,Flexible Height不起作用;
既然是做文字游戏,排版可是重点技巧,Layout Group和Layout Element梳理之后,排版算是比较得心应手了!