编辑
2025-06-19
Unity
00

目录

思路
1.计算可视范围的坐标
2.获取当前应该显示那些范围内的道具
3.记录当前正在显示中的道具
代码实现

使用UGUI中的Scroll View组件实现无限滚动列表,可以应用于背包、排行榜等需要展示大量Item的页面,复用对象,提高性能。

思路

1.计算可视范围的坐标

首先计算当前可视范围的区域的起始坐标Y1和结束坐标Y2,

Y1即为content的PosY的值,Y2 = Y1 + Height,从而得出起始位置坐标Y1和结束位置坐标Y2;

2.获取当前应该显示那些范围内的道具

假设我们用一个List来存储道具数据,要得到当前那些道具应该被显示,那就是获取index的范围,当前应该显示应为startIndex ~ endIndex,如何获取索引的范围呢?通过两个公式直接计算得出:

1. 起始的索引:startIndex = Y1 / 格子的实际高度 * 每一行的格子数

注意:假设一个道具格子的大小为 300 * 300,由于格子上下有间距,假设间距为90,那么带入进公式中格子的实际高度为390(见示意图),计算时不能直接带入300,除非你的道具格子是无缝紧密相接的

2. 结束的索引:endIndex = Y2 / 格子的实际高度 * 每一行的格子数 + (每一行的格子数 - 1)

image.png

3.记录当前正在显示中的道具

需要一个容器来记录当前视野范围内正在显示着的道具,当我们向下滑动窗口的时候要进行判断,上方的已经不在视野内的道具应该移除,下方即将显示出来的道具应该创建 image.png

代码实现

根据思路一步一步的实现代码

本文作者:xuxuxuJS

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!