Unity实现一个可扩展的UGUI无限滑动列表控件

12月20日新增

增加一个可收缩的滑动列表,适用于游戏中的任务系统,成就等
在这里插入图片描述
使用说明

创建时需要两个模板slot,一个是button,另一个则是btn下显示的cell

配置如下图添加ExpandableView脚本,新增的IsDefaultExpand用来控制是否展开

11月28日新增

增加可调节的顶部间隙和左侧间隙
在这里插入图片描述

采用 缓存池+存储布局坐标 实现的一个可横向或纵向滑动的无限滑动列表

Demo展示:

在这里插入图片描述

功能支持:

可以满足大部分如背包,商店商城,工具栏,任务栏窗口等列表功能

  • 支持整个列表刷新或单个对象刷新
  • 支持横向多行滑动,可设置行数,左右间隔大小
  • 支持纵向多行滑动,可设置行数,左右间隔大小
  • 支持通过列表索引定位到列表中的某一位置
  • 可以作为基本扩展
  • 详细可看源码…

案例测试:

导入Package后的目录结构如下,打开MainDemo场景

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2wYB6LXE-1668740868971)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20221118105458449.png)]

场景上有一个TestScript节点挂在了脚本 RecycleViewTest.cs,默认配置了1000个数据和通过索引定位到966位置(暗示上班时常),此处可以修改启动游戏测试。实际开发中,可以参照该脚本中的方法调用对滑动列表进行初始化。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-orORbjhN-1668740868972)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\image-20221118105153293.png)]

使用方法:

在你制作好的scrollview上挂载脚本 RecycleView.cs,并且详细参数进行设置,如下图:

在这里插入图片描述

目前最大支持10行或10列,如果需要配置更多行,则需要去脚本RecycleViewEditor.cs中找到行列设置参数lines进行修改

rv.lines = EditorGUILayout.IntSlider("Row Or Column", rv.lines, 1, 10);

生成你的滑动列表的必要三个步骤

  1. 持有RecycleView对象rv,并注册回调函数 rv.Init(callBackFunc)
  2. 刷新整个列表(首次调用和数量变化时调用): ShowList(int count)
  3. 在回调函数中做具体的显示,操作等 Func(GameObject cell, int index)

示例代码:

public RecycleView VerticalScroll; // 持有对象

void Start()
{
    
    
    StartScrollView();
}

public void StartScrollView()
{
    
    
    VerticalScroll.Init(NormalCallBack); // 注册回调
    VerticalScroll.ShowList(ListCount);  // 刷新列表
}

private void NormalCallBack(GameObject cell, int index)
{
    
    
    // 在该方法中做具体的逻辑
}

资源地址:

GitHub:RecycleViewSample

git clone https://github.com/wankcn/RecycleViewSample.git
git clone [email protected]:wankcn/RecycleViewSample.git

CSDN站内资源:RecycleView.unitypackage

猜你喜欢

转载自blog.csdn.net/wankcn/article/details/127918614