利用Unity+Slua实现游戏常用UI组件(三)LScrollPage

  1. 定义
    LScrollPage是一个翻页式组件,每次滚动的间隔固定,为一个遮罩(Mask)大小,而LScrollView则可以滚动任意距离。在游戏中常见于数据量过大,需要分页请求数据的界面,比如背包,排行榜等

  2. 效果展示
    图1 LScrollPage滚动效果

    图1:LScrollPage滚动效果

    图2 LScrollPage元素复用以及SetCurrentPage接口效果
    图2:LScrollPage元素复用以及SetCurrentPage接口效果

    图3 支持元素水平或者垂直布局
    图3:支持元素水平或者垂直布局

  3. 特性
    3.1、最多只会创建三页所需的元素,滚动过程中元素复用
    3.2、支持跳转到指定页数(调用SetCurrentPage接口,可见上面图2)
    3.3、支持元素水平或者垂直自动布局(可见上面图3)
    3.4、支持设置元素与元素之间的间隔(gap),设置元素与ScrollRect中Content的偏移值(padding)
    3.5、使用者与元素方便进行交互,拓展性良好(详见LScrollViewDemo的第6个例子)

  4. 设计思路
    4.1、理论上LScrollPage可以做到LScrollView的复用效果,即只需要创建一页的元素即可。之所以没这么做是因为LScrollPage先于LScrollView实现,那时还有技术问题没解决。但是,LScrollPage也比较好的解决了一次性创建过多元素的问题,能满足大部分需求
    4.2、在翻页界面中,元素动态大小并不常见,所以在设计LScrollPage时不考虑元素动态大小,要求元素大小固定
    4.3、LScollPage因为大小固定,所以布局,元素复用等逻辑的处理方式比LScrollView更加简洁易懂

  5. 项目地址:
    git地址(scene:Demo中的LScrollPage)
    Unity版本:5.6.6

猜你喜欢

转载自blog.csdn.net/lahmiley/article/details/81464192