UGUI的无限滚动循环可定位列表

发表于2018-01-23
评论7 1.47w浏览
新手日志,高人莫喷

·我们在游戏种看到背包,排行榜,好友这些功能中对于数据列表长度可变的情况下,为了性能方面的考虑,使用ugui实现一个循环滚动的列表就显得尤为必要了。

·前几天写过一篇关于UGUI可复用循环列表的日志,但是资源整合的不太好,因此删除了那篇日志,现在重新整理了一下还打个包提供下载:这个包已经是unitypackage了,因此直接导入就可以使用,里面还加入了例子,可以更好的使用,也可以修改代码,实现自己的功能。资源下载

·以下是列表容器中的设置,ColumnCount是指列数,如下的例子中展示的列表是多行单列的,因此此处为1就可以了。CellSize是下方RenderGo 预制体ItemRender的尺寸。SpaceSize是间隔。

·以下是例子的功能展示图
运行之后 设置数据数组我们这里设置的数据是长度500的int数组,内容是0到499(我们也可以自定义数据Class,然后在单个Item显示自己的数据),删除某个数据,移动列表至某个数据,添加新数据等。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签:

7个评论

  • KK 2019-01-04 1楼
    和我之前写的差不多,简洁轻便的数据适合用
  • L&S 2019-03-30 2楼
    有横向滑动的例子吗
  • Endeavor 2019-05-07 3楼
    占个点
  • zmh 2020-11-28 4楼
    赞~终于找到了。我给点意见哈,动态格子其实不会动,名字有点不好哈。每帧计算可见动态格子(500个)消耗比较大,我们可以根据mask的高和content的偏移直接算出可见动态格子的开始行号和结束行号,于是inOverLaps这个数据都不需要了,连GC都少了哈。还有接口设计时候我觉得应该传个回调过去,当格子被显现(从看不见到看见)时候回调并把序号传过去,函数根据需要自然知道要取数据来填充渲染器,这样就不会和数据耦合了。
  • 垓下綮 2020-08-10 5楼
    每搞一个列表,都要搞一个item类,多麻烦呀,搞一个回调传gameobject,index更方便简单些
  • 2019-08-05 6楼
    好文章,谢谢作者!希望多出点类似小功能优化的文章,
  • 此间少年 2019-09-07 7楼
    点个赞