uinty3d Auto Layout(自动布局)

uinty3d  Auto Layout(自动布局)

1、Auto Layout (自动布局)

自动布局系统提供方法在layout groups中嵌套放置元素,例如horizontal horizontal groups, vertical groups, 或者grids。它也允许元素包换的内容自动地设置大小。例如一个按钮可以根据它的文本内容动态地重新设置大小。


自动布局系统是一个基于基础的Rect Transform之上的布局系统,它可以随意的用在一些或者全部元素上。


2、理解Layout Elements(布局元素)

自动布局系统基于layout elements 和layout controllers的概念。


一个layout element用以下属性来定义:

  • Minimum width      窗口允许的最小宽度

  • Minimum height     窗口允许的最小高度

  • Preferred width    可以理解为,UI自身希望的宽度

  • Preferred height   可以理解为,UI自身希望的高度

  • Flexible width     如果父UI的宽度大于Preferred ,使子UI填充满父UI(默认值为-1,不会进行扩展,当大于0时,作为权重值来计算当前UI的位置)

  • Flexible height     同上


图像和文本组件是两个例子的功能作为布局元素的组件。他们有一个最小minimum宽度和高度为零,和首选preferred的宽度和高度相匹配的图像或文本的内容。他们灵活flexible的宽度和高度是 -1。


图像和文本的组件已经是布局元素功能,因为他们定义他们自己的最小值和首选大小。如果你想要重写的最小值或首选的大小,您可以通过将布局元素组件添加到游戏物体。布局元素组件也可以添加到任何游戏对象,使成为一种布局元素。


3、理解 Layout Controllers(布局控制器)

布局控制器是组件,它控制元素的大小和位置。

Content Size Fitter和Aspect Ratio Fitter:控制自身layout element的大小。

Layout Groups:控制它的子layout element的大小和位置( Horizontal Layout GroupVertical Layout Group 和Grid Layout Group)

无论布局组被分配的大小,它会尝试分配合适的空间量,它的每个孩子布局元素基于minimum, preferred, and flexible sizes的大小被记录。布局组还可以任意嵌套地通过这种方式。


Grid Layout Group(网格布局组)组件地方在网格中包括其子布局元素,其中每个元素有一个固定的宽度和高度指定其在的网格布局组中的位置。与其他布局组不同,网格布局组忽略由其子布局元素记录的的minimum, preferred, and flexible的大小。