关于LoopScrollRect(循环列表)插件的一些坑
一、
在使用循环卷轴时,通过数据进行驱动,动态渲染显示其中的内容物(oBox),也就是说,你将列表滑到显示区域内时,卷轴才会使用提前获取到的数据,循环利用oBox,初始化显示内容物。
注意,因为涉及到了循环利用oBox这个预制体,所以一定不能保存oBox的引用来进行如比较等操作,否则会出现一些预期外的错误。
所以尽量保存用于渲染oBox的数据,以数据来区分他们的不同。
二、
在LoopScrollRect的Content下,不能放置预制体,否则哪怕是处于未激活状态,也会被强制征用。
因为Loop是会循环使用预制体的。
三、
LoopScrollRect,在一次初始化后(SetData),其值都保存在m_ChildLuaObject列表中。
可以通过GetChildLuaObjs()函数来获取该列表。(注意!!! 通过该方法获取到的数组为:当前显示范围内的数据组,也就是说,它不一定是全的!!!!!)
但要注意的是:
此时所有的列表对象都是通过物体实例 ID 保存的,所以不能通过 for in ipairs(table)来遍历访问,因为它并不是一个连续数字的数组。
只能通过for in pairs(table)来访问。
如果想判断改变的数据是否对应该列表中保存的对象,可以在列表对象初始化操作中为对象添加标识变量,遍历时通过标识变量来判断即可。
四、
如果要操作box这个物体的话,换用ScrollView + GridLayoutGroup吧,Loop更多的适用于大量显示,不需要操作到具体对象的,或者当前选中的某个对象,这是很难获取到的。
五、
Box的Clear函数必须设计好,要将所有Box可能会发生变化的UI数据,进行清理,否则可能会出现意想外的错误。
例如,如果玩家频繁开关界面,这时候界面的loop可能还没有完全被销毁,这时候它保存的数据可能是上一次打开时保存的,所以如果没有经过Clear的清理,极有可能出现UI叠加,特效叠加等情况。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理