unity NGUI 中ScrollView大量物体的优化方式:重用item

不管是游戏还是软件,列表(ScrollView)都是算是最常用的控件之一。列表中的内容少的几个,而多的时候几千上万个,这时候如果我们不对列表进行优化,直接加载所有物体肯定是不现实的。当然这个问题的优化策略网上也不少,最多的就是重用item,大概看了一些,不是做的非常复杂就是说的含糊不清,所以这里自己动手写了个demo,简单易懂,代码量很少,一共100多行代码,这里分享出来。

基本思想就是当列表向上移动时,我们就把超出屏幕上部的item移动到列表末尾位置并重置数据。当列表向下移动时,就把超出屏幕下部的item移动到列表开头。


首先创建Scroll View ,Grid并把他们设置为竖向的,调整好尺寸。

在创Grid下建一个我们想要的item,不要忘记添加BosCollider和UIDragScrollView,BosCollider要勾选IsTrigger。并制作成预制体。

制作完后运行场景,一切顺利的话我们可以看到一个item,并且可以在ScrollView范围内拖拽.


现在开始编写脚本:

创建一个数据类ScrollViewItemData:

public class ScrollViewItemData {
	public int index;
	public string name;
	public ScrollViewItemData(int index,string name){
		this.index = index;
		this.name = name;
	}
}

这个类应该是列表中每个item的原始数据。这里我们只简单的定一个2个数据,一个索引,一个name。

索引用来记录当前数据的顺序,name用来作为需要显示的

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值