unity3d 在UGUI中制作自适应调整大小的滚动布局控件

在游戏中,我们很多地方需要用到scroll content的概念:我们需要一个容器,能够指定布局方式(比如横排排列、竖排排列、网格排列)等。然后我们向其中填充内容,这个容器应该自己能够处理所有的元素布局,包括相关的滚动条等等概念。


一个经典的例子就是制作一个物品栏:

unity3d 在UGUI中制作自适应调整大小的滚动布局控件_第1张图片


在UGUI中,我们要如何来制作呢?


UGUI原生态提供Scroll Rect Component、Mask、Content Size Filter、ScrollBar控件,我们需要将他们组合使用:


unity3d 在UGUI中制作自适应调整大小的滚动布局控件_第2张图片

如上图,我们先制作一个能够自动适应大小的文本滚动框。


设置Panel的属性如下,加上ScrollRect、Mask组件,将content设置为我们的文本框

unity3d 在UGUI中制作自适应调整大小的滚动布局控件_第3张图片


给文本框设置组件如下:(添加Content Size Filter组件)

unity3d 在UGUI中制作自适应调整大小的滚动布局控件_第4张图片

注意,这样设置后文本多的情况下滚动条会直接初始在中间,我们需要顶部对齐,设置Text的RectTransform属性如下:


unity3d 在UGUI中制作自适应调整大小的滚动布局控件_第5张图片

调整对齐和Anchors Pivot(X=0,Y=1)




同理,我们需要做Grid的话,只需要将scroll rect的content指向一个带GridLayout的GameObject,并且将这个GameObject设置Content Size Filter和锚点即可。

unity3d 在UGUI中制作自适应调整大小的滚动布局控件_第6张图片

unity3d 在UGUI中制作自适应调整大小的滚动布局控件_第7张图片

你可能感兴趣的:(游戏开发及技术)