Unity的ScrollView无限循环滚动
前言
此篇文章当作知识学习即可,需要使用循环复用的小伙伴可以尝试博主近期开发的ScrollCircleMaker v1.0,此插件功能比较完整,使用方便,如果遇到问题可以联系我进行修改。
当ScrollView下的物体很多上百上千的时候,不可能去实例化出来这么多物体,这个时候需要优化了,不然drawcall会很大很大 ,所以笔者花了1,2天时间去写了一个比较实用的工具,那就是ScrollView无限循环滚动,接下来给大家展示一下效果(剪掉了一些帧数因为太大上传不了,实际效果更加丝滑),如下:
自我感觉写的还是比较完善的,item样式刷新和点击事件的注册等等的基本功能,支持4个方向的无限滚动的,自适应Content大小进行布局,下面是使用的教程和设计的基本思路,最下面也将附上Demo工程的下载路径。
需要在Content下添加GridLayoutGroup,代码会读取GridLayoutGroup下的一些参数,然后会把GridLayoutGroup组件禁用掉,美术可以设置GridLayoutGroup的参数去查看无限滚动的预期效果,接下来和大家讲解一下设计的思路和一些代码的片段, 首先需要计算可显示区域行列最大值是多少,如果上下滚动的话,计算出来最大行还需要加1,这样子最大行*最大列就是需要初始化的item个数,当然需要把所有的item数据存在List<object>下用来刷新item,所以初始化这个工具类需要做这些事情,如图下:
可以看到这里还将一个函数传递进去,这个Text类是继承了ItemBase这个抽象类,一个Item将对应上一个Text的实例,实例化一个Item的时候就调用一下传递进去的委托创建一个Text实例对应上,初始化显示的时候按顺序调用ItemBase的函数,如图下:
之后就是刷新的问题(这里就单单讲从上到下显示的刷新,其他都差不多),刷新需要先监听ScollView的拖动,所以如图下:
刷新的思路是如果向下移动的时候,第一行完全被覆盖了,这样就把第一行刷新到最下面的一行,改变位置和调用UpdaView改变Item样式,以此循环,向上刷新的时候第一行间距大于纵向间距,将最后的一行刷新到最前面的一行,接下展示一下代码的片段,如图下:
工程的下载链接:https://download.csdn.net/download/m0_37920739/11186683
Unity的ScrollView无限循环滚动相关推荐
- unity实现图片轮播效果_unity 背景无限循环滚动效果
背景无限循环滚动效果如下示: 步骤如下: 导入背景图片后,设置图片的格式,如下图: 2.图片格式也可以设置是Texture格式,但是Wrap Mode 一定要是Repeat[重复发生]:然后记得App ...
- ios之实现自动无限循环滚动视图(1)
ios之实现自动无限循环滚动视图(1) 前言 效果展示 功能 分析 全部代码 前言 ios实现无限循环滚动主要有两种办法,都利用了UIScrollView,第一种是创建一个很大的UIScrollVie ...
- 【Android】ViewPager实现无限循环滚动
最近做的一个项目,客户要求在ViewPager实现的主页面中滑动到最后一页后继续滑动能返回到第一页,也就是实现无限循环滚动,效果如下: 看了下ViewPager没有滑到尽头的回调方法,因此想到的解决方 ...
- JQuery图片无限循环滚动源码
平常项目中经常用到图片循环滚动,所以就写些必要的CSS定位,JS基本算法,最后就封装成JQuery图片无限循环滚动插件类,其实本质上是li块无限循环滚动,li块里面不管是图片还是其它内容,都OK的. ...
- [jQuery基础] jQuery动效案例(二) -- 图标特效、无限循环滚动(简易轮播图)
图标特效 实现效果展示 实现步骤 第一步(实现静态效果) CSS部分 *{margin: 0;padding: 0; } ul{list-style: none;width: 400px;height ...
- Swiper:无限循环滚动时出现空白页/页面内容不刷新
问题描述 使用Swiper插件实现列表的无限循环滚动效果,记录遭遇的两个问题:①滚动到某页时界面显示空白:②用id唯一标识列表中需要动态改变的值,在改变某一id的div内容后,页面显示内容并未改变 问 ...
- 文字/图片向上无限循环滚动
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 在线直播系统源码,横向无限循环滚动的单行弹幕效果
在线直播系统源码,横向无限循环滚动的单行弹幕效果实现的相关代码 实现思路分析 要实现上面的效果,我们先拆分下实现要素: 1.弹幕布局是从屏幕的右侧向左侧滚动,单个弹幕之间的间距是固定的(设计要求) 2 ...
- Unity3d学习笔记-无限循环滚动背景(完整的商店广告牌组件)
在游戏项目中我们常常看到商城的广告牌,几张广告图片循环滚动,类似跑马灯,现在我将讨论一种实现方法,并提供一个管理类,大家可以直接使用. 实现原理:背景图片循环滚动的原理很简单:两张图片向一个方向移动, ...
最新文章
- Karpathy更新深度学习开源框架排名:TensorFlow第一,PyTorch第二
- linux查找技巧: find grep xargs amp;amp; linux系统信息查看大全
- OpenAI逆炼以文生图:参数缩水2/3性能却更强,还get局部编辑新技能|可试玩
- (最小生成树)Truck History --POJ -- 1789
- 2021-06-04
- hihoCoder 1367 等式填空
- VS2015 error LNK2019	无法解析的外部符号 _WinMain@16,该符号在函数 int __cdecl invoke_main(void)
- Ubuntu16.04-LTS升级到18.04
- html:(5):了解html的代码注释和语义化
- mysql 备份_shell脚本实现MySQL全量备份+异地备份
- react 父子传值_React父子组件传值
- 全网首发:GB18030中,蒙文的错误
- 精选36道SQL练习题解析 from(原50道SQL练习题)
- oracle数据库审计要素,明御数据库审计及风险控制系统招标参数.docx
- 军事训练飞机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- docker容器和镜像的区别
- excel 如何用公式函数去除单元格的空格和回车 并进行 单元格字符串比对
- 简单的PHP登陆页面和登陆成功页面代码
- XP电脑桌面图标文字带上颜色不透明 解决办法
- CISA 考试大纲及考点