欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Unity ScrollView实现无限滑动效果

程序员文章站 2022-07-02 22:29:31
本文实例为大家分享了unity scrollview实现无限滑动效果的具体代码,供大家参考,具体内容如下一、效果演示二、前言当邮件中有1000封邮件,商店列表中有1000个物体,如果直接实例化1000...

本文实例为大家分享了unity scrollview实现无限滑动效果的具体代码,供大家参考,具体内容如下

一、效果演示

Unity ScrollView实现无限滑动效果

二、前言

当邮件中有1000封邮件,商店列表中有1000个物体,如果直接实例化1000条数据显示则会大大增加drawcall,而大量不可见的数据被mask组件排除在可视范围之外,但他们依然存在,这时就需要考虑通过一个无限滑动的scrollview来优化渲染性能

三、实现思路

通过头下标和尾下标记录当前实例化数据的最大最小索引,之后用content的锚点位置与当头下标的锚点位置进行比较判断滑动的方向以及是否超出滑动范围,如果正方向滑动超出范围则将第一个元素移动到最后一个,如果反方向滑动超出范围则将最后一个元素移动到第一个,这样场景中始终存在5个实例化的元素,依次改变元素的位置和显示即可

四、使用说明

——此功能脚本是对scrollrect的扩展,所以必须添加ugui提供的基础scroll view
——content上必须添加gridlayoutgroup组件,通过gridlayoutgroup组件设计布局,(我在代码中对startcorner、startaxis、childalignment和constraintcount进行了限制,不需要对其设置)
——不能添加content size fitter组件
——先调用settotalcount方法设置总的数据数量再调用init方法进行初始化
——根据需求修改setshow方法体
——只适用于单向滑动的情况,不能满足竖直和水平同时滑动的需求,因为大多数无限滑动列表的使用场景都是单向的

五、完整代码

将infinitescrollview脚本挂载到scrollview上

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关标签: Unity 滑动