Unity UGUI系列七 Layout、Content Size Fitter、Aspect Ratio Fitter

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity UGUI系列七 Layout、Content Size Fitter、Aspect Ratio Fitter相关的知识,希望对你有一定的参考价值。

参考技术A 参考
【Unity3D-UGUI原理篇】(五)Auto Layout 自动布局
Unity中UI的自动布局

https://docs.unity.cn/cn/2019.4/Manual/script-LayoutElement.html

Layout Element组件对子对象的分配原则如下:

从以下图片可以看出图片宽度的增长方式:

另外要注意的是,Text、Image Component 会根据内容大小自动分配 Preferred Size。

参考
https://docs.unity.cn/cn/2019.4/Manual/script-HorizontalLayoutGroup.html

Upper,Middle,Lower可以理解为垂直方向上的是否居中

勾上后,父容器变化时,这些Button的宽高会改变

如图,把左侧按钮的Scale.x改为2,如果不勾选Use Child Scale,就是布局组不考虑子元素的缩放,那么就叠到一块了。勾上后,则会自动计算Scale增加的宽度,如图:

Unity UI布局(Layout)与布局元素(Layout Element)
给PanelUp和PanelDown添加布局元素,并分别设置Flexible Height为2和1,这个Flexible Height就是用于设置控件显示比例的

https://docs.unity.cn/cn/2019.4/Manual/script-GridLayoutGroup.html

与其他布局组不同,网格布局组会忽略其包含的布局元素的最小大小、偏好大小和灵活大小属性,而是为所有这些元素分配固定大小,此大小则由网格布局组本身的 Cell Size 属性进行定义。

可以设定如图这种元素,观察不同的Start Corner对应起始位置。

如果我们现在有一个需求,必需要让 “父物件大小” 根据 “子物件大小” 进行缩放:

这时如果增加 Button(子物件),上面有提到,Horizontal Layout Group 会根据子物件的 Layout Element 进行分配子物件大小,而不会修改父物件本身的大小

Horizontal、Vertical Fit有三个参数:

通过上面实例,我们首先使用 Horizontal Layout Group 排列子物件,并在子物件增加 Layout Element 设置Min Width。最后通过 Content Size Fitter 取得子物件 Layout Element 设定父物件大小。至此父物件大小就会根据子物件大小进行缩放。

当 Width 改变时,Height 会依比例改变:

当 Height 改变时,Width 会依比例改变:

调整父物件大小,物体会依据比例贴齐父物件:

调整父物件大小,物体会依据比例包覆父物件:

以上是关于Unity UGUI系列七 Layout、Content Size Fitter、Aspect Ratio Fitter的主要内容,如果未能解决你的问题,请参考以下文章

Unity零基础到进阶 ☀️| UGUI布局组件介绍 Vertical Layout GroupHorizontal Layout Group 和 Grid Layout Group

Unity3d中UGUI组件精简复盘(十六)三大 Layout Group组件

Unity3d中UGUI组件精简复盘(十六)三大 Layout Group组件

Unity零基础到进阶 ☀️| UI系统学习UGUI布局元素 Layout Element 介绍 和 简单示例

Unity3D-UGUI系列Panel 容器组件详解

Unity3D-UGUI系列Image 图片组件详解