unityscrollview生成大量_superscrollviewforUGUI的一些使用心得

接触这个插件也有差不多半年了,这段时间都是跟这个插件做的UI打交道,所以记一下相关的使用心得做备忘。

这个插件主要由三个脚本构成,分别是ListItemData(挂载在要展示的物体预制体身上的,物体对应的属性,初始化字段等均可以写在这里)(另,若存在一行有多个物体这样的情况,则需要两个ItemData,一个是单独的物体,另一个则是代表一行的物体,行物体初始化时调用行内所有物体的初始化方法,其他的类似),Picker(生成和排序物体的相关方法脚本,可以写入UI相关脚本中整合),data(数据的来源,也就是生成初始数据列表的地方,可以写入对应的data脚本中整合。)

使用时,只需要把LoopListView2挂在ScrollRect组件所在的物体上即可(一定要在同一个物体下,否则无法获取到)。然后将要重复显示使用的预制体拖入ItemPrefabList中即可。(拖到哪个里?就一个能拖进去的啊!)

这里面相关的参数大意如下:

ItemPadding:表示物体之间的间隔。若填0就贴在一起。

X/YposOffset:表示物体排序的偏移值。如果是上下滚动,这里显示的是X,否则显示Y。填0表示居中,否则会有偏移。

InitCreateCount:暂时不清楚有什么用……说明书里写表示最开始初始化的数量,但目前来看填几都差别不大。

下面的SupportScrollBar勾上后,可以支持滚动条。

ItemSnapEnable勾上后,将允许选中指定的物体并特殊显示。(如滚动时最中间的那一个物体始终放大表示被选中)下面的ItemSnapPivot和ViewPortSnapPivot可以调整选中目标的位置和偏移,具体可以自己调整,我不太清楚如何表达比较合适……

最下面的ArrangeType表示显示方式,依次是从上到下、从下到上、从左到右、从右到左。

设置好之后,将Picker脚本挂载到相应物体上(也可以不挂直接整合进UI中),Picker脚本主要有以下几个注意的地方。

1、需要一个生成物体的方法OnGetItemByIndex,具体可以参考范例中的写法。通常就是给物体赋一个编号,根据编号从对应容器里取出数据,塞给物体赋值,然后初始化,最后返回这个物体。

2、最大显示的数量、当前选中的目标index等也都在此脚本中声明和使用。

3、还需要一个LoopListView2的对象,将之前设置好的组件物体拖入,用来调用里面的方法。

弄好之后,在Start里面执行以下函数:(如果整合进UI里,就在UI初始化中执行)

LoopListView.InitListView(int,func)(前者表示这个表最多拥有多少个物体,如果填-1则表示无穷无尽,后者表示生成这个物体使用的方法,把1中的方法填进去即可)

4、需要刷新显示的物体数据时,直接修改容器内的数据,再调用RefreshAllShownItem方法即可。如果涉及增删操作,则需要先调用SetListItemCount方法调整最大值,否则会出现BUG。

5、给名为mOnSnapNearestChanged的Action指定方法,则当选中物体变化时就会调用该方法。(对选中物体特殊处理一般就在这里处理)

6、如果列表是不循环的,则首尾的物体不能被选中(因为无法居中)。这时候可以考虑做两个空白的物体替代物体,并修改对应代码引用。如果没有居中的需求,可以摒弃掉自带的选中,重写一个选中的方法。

7、MovePanelToItemIndex方法是直接瞬移到指定物体,而SetSnapTargetItemIndex方法则是滚动到指定物体处。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Super ScrollView for UGUI提供基于UGUI ScrollRect的可轻松定制的ScrollView。它是一组C#脚本,可帮助您创建所需的ScrollView。这是非常强大的和高度优化的性能。 文件 Android演示应用程序 演示: - 聊天消息列表演示 - 水平画廊演示 - 垂直画廊演示 - GridView演示 - PageVew演示 - TreeVew演示 - 与稠粘头演示的TreeView - 旋转日期选择器 - 更改项目高度演示 - 下拉刷新演示 - 拉起来加载更多的演示 - 点击加载更多演示 - 选择并删除演示 - GridView删除项目演示 - 顶部到底部的演示 - 自下而上的演示 - 从左到右的演示 - 右侧演示 - 响应GridView演示 - TreeViewWithChildrenIndent演示 特征: - ListView和GridView和TreeView - 无限的项目 - 项目在不同的大小(高度/宽度) - 具有不同预制的物品 - 在初始时间大小未知的项目 - 垂直滚动视图(从上到下,从下到上) - 水平滚动视图(从左到右,从右到左) - 项目填充 - 滚动到指定的项目 - 滚动到具有偏移量的项目 - 项目计数在运行时更改 - 项目大小(高度/宽度)在运行时更改 - 物品捕捉到视口中的任何位置 - 项目循环,如微调 - 添加/删除项目 - 全部删除/删除所有项目 - 刷新并重新加载项目 - 使用池缓存项目,不要在运行时销毁项目 - 有效回收物品 - 平台无关 - UGUI支持 - 支持Unity平台(IOS / Android / Mac / PC / Console / Winphone / WebGL ...)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值