在制作UI过程中,通常需要我们创建一个小窗口来显示很多内容,如游戏说明、捕鱼达人中鱼的种类、电影票的选择等等。

1.创建一个“Image”为窗口,命名“background”,添加“Scroll Rect”和“Mask”属性。如图

unity UIGUI scrollView 滑动结束监听 unity 屏幕滑动_控件

其中“Mask”,蒙版控件,遮罩“background”以外的区域。

        Show Mask Graphic:显示蒙版图像,预览蒙版图像的显示效果,通常要取消该复选框。

Scroll Rect:

        Content:需要滑动面板所有内容的父面板

        Horizontal:是否允许平行滑动

        Vertical:是否允许垂直滑动

        Movement:移动类型。Unrestricted,自由的,内容可以随意拖动;Elastic,弹性的,允许内容暂时移出区域范围,但弹性拉回,Elasticity,弹性系数,默认0.1,数字越大,回弹所需时间越长;Calmped,钳制,不会超出边界。

        Inertia:惯性,滑动结束时是否惯性移动;Deceleration Rate,减速度,为0时没有惯性,为1时一直匀速至边界,0-1时减速滚动,大于1时加速滚动直至边界。

        Scroll Sensitivity:滚动灵敏度,数值越大,滚动越灵敏。

        Viewport:视口区域的引用,可以定义要显示的范围

        Horizontal Scrollbar:横向的滑动控制条

        Vertical Scrollbar:纵向的滑动控制条.

2.以“background”为父体创建一个Image,命名为“Grid”,设置其尺寸及位置,添加“Grid Layout Group”属性。如图

unity UIGUI scrollView 滑动结束监听 unity 屏幕滑动_Layout_02

Grid Layout Group(网格布局组):

        Padding:布局组的内边距,布局组四周与布局元素之间的间距

        Cell Size:组中布局元素的尺寸,即“fish0”的大小

        Spacing:布局元素之间的间距

        Start Corner:第一个元素所在的位置

        Start Axis:放置元素沿哪个主坐标轴。在开始一个新行之前Horizontal选项将填补一整行,Vertical将在一个新列开始之前填充整个列。

        Child Alignment:布局元素的对齐方式,包括左上、左中、左下、中上、中中、中下、右上、右中、右下共9种对齐方式

        Constraint:限制网格的行列数为一个固定值,以辅助自动布局系统。

设置好Grid Layout Group后,直接复制粘贴“fish0”,子元素可规整的排列,这种布局针对元素单一,切元素位置和尺寸不能单独设置改变。

3.当“Grid”的子对象需要不规整的排列或尺寸不一样时。

方法1:只创建一个子元素GameObject,该对象是“fish0”等元素的父体

方法2:给所有的子元素添加一个“Layout Element”属性,如图

unity UIGUI scrollView 滑动结束监听 unity 屏幕滑动_Layout_03

Layout Element:

        Ignore Layout : 忽视布局。如果想某个元素不参与布局,选中即可

        Min Width,Min Height:最小宽度,最小高度。子控件必须满足的最小宽度(高度)(优先满足,具有强制性)

        Preferred Width,Preferred Height:优先宽度,优先高度。如果父控件在满足子控件最小宽度(高度)后仍然有富余空间,优先选择的宽度(高度)

        Flexible Width,Flexible Height:弹性宽度,弹性高度。父控件在满足子控件优选宽度(高度)之后仍然有富余空间,剩余空间按比例分配的比例数值

两种方法的不足是不参与布局的元素要单独设置位置及尺寸。结果如图:

unity UIGUI scrollView 滑动结束监听 unity 屏幕滑动_Group_04

当元素多时,可用代码控制。