Unity ScrollRect滑动

ScrollRect通常是和Mask组件一起使用的。mask组件的功能是使滑动到scrollrect指定区域之外的内容隐藏。

滑动ui层级结构,如下图所示:

tabcontrol : 

Unity ScrollRect滑动_第1张图片


tabcontrol上绑定着ScrollRect、Mask、Image组件。

    ScrollRect : Content 滑动的内容,也就是tabcontrol层级下的Content,拖拽进去

                            Horizontal:水平滑动  Vertical : 竖直滑动

                            Movement Type : 滑动状态  unrestricted:没有回弹效果,实现效果非常生硬(具体自己可以测下,语言表达能力有限)  Elastic : 最理想的滑动,有回弹 有摩擦力  Clamped:无滑动

                            Inertia :勾上之后,滑动会顺畅很多

Image : Source image 添加的uimask是遮盖效果,使其不能在滑动时对滑动区域外进行操作


Content : 

    绑定上Grid Layout Group(网格组件),在这里我说下网格组件比Vertical Layout Group以及Horizontal Layout Group功能更加强大,因此学会用网格组件是很重要的。(当然也可以添加Vertical  Horizontal两个组件,在这里我是添加的网格组件)

添加上网格组件后,content的子层级的位置,只能通过Grid Layout Group的padding属性来改变(子层级下的transform变灰,不可改变),

    Grid Layout Group : Cell Size 子物体的宽高

                                        Spaceing : 子物体之间的间距

                                        Start Corner : 从哪个方向开始排列

                                        Start Axis : 选择竖直排列还是水平排列

                                        Constraint:Fixed column count 选择一行可以排列几个物体

因为Grid Layout Group添加之后就不可以直接改变其中物体的位置,因此出现了Conent Size Fitter组件,此组件可以对Horizontal、Vertical进行选择,使其自适应(具体含义请百度搜索,在这里不做赘述)


最后要注意的是,如果要实现滑动效果,对于tabcontrol层级的transform中的宽高要格外慎重,这里的宽高区域一定要小于内容的区域,不然就不能实现滑动停留效果(滑动立马回回弹过来)。 亲自试坑,望对大家有帮助

第一次写unity博客,不足地方 请大家指正


你可能感兴趣的:(Unity)