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

2023-11-04

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 git@github.com:wankcn/RecycleViewSample.git

CSDN站内资源:RecycleView.unitypackage

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 游戏开发创建操作之玩家信息系统的建立

    游戏一般都需要玩家信息系统 那么我们应该如何搭建玩家信息系统 接下来我将展示一种简单的方法 完整代码如下 using System Collections using System Collections Generic using Uni
  • 游戏开发常见操作梳理之小地图的制作

    游戏中一般存在小地图系统 实际上就是设置一个新的摄像机放置在玩家的正上方 然后在小地图上显示新摄像机看见的东西就可以了 在小地图上一般存在放大地图和缩小地图的按钮可以方便放大和缩小地图 这些操作是如何实现的呢 接下来直接上核心代码 usin
  • 在 ScrollView 中滚动 EditText

    我有一个讨厌的问题 我有EditText 8行 内ScrollView 当我尝试滚动文本时EditText它的行为并不稳定 有时它会滚动 有时它不会获得焦点 这是我的布局文件 为了让我的问题更清楚
  • ScrollView 在 swift 3 中添加子视图

    我想尝试在滚动视图上添加视图表单 但视图未完全添加到滚动视图的框架上 我的代码是 import UIKit class AddIncomeVC UIViewController IBOutlet var scrollView UIScrol
  • Android 在可扩展列表视图中禁用自动滚动

    我在可扩展列表视图中使用 当我打开列表视图中的某个项目时 我的滚动会自动聚焦在打开的项目上 我可以阻止列表聚焦在新项目上并停留在同一个地方吗 我尝试从打开的视图中删除可聚焦的内容 但它不起作用 您需要重写 OnGroupClickListe
  • 启用滚动视图缩放

    我已将某些数据放置在我的ScrollView 我想让它放大 缩小 它包含简单的ImageView and TextView 任何建议都会有帮助 谢谢 这是我的代码
  • 在 for 循环内动态创建按钮以在滚动视图中使用

    我在动态创建按钮时遇到问题 我使用了提供的帮助如何在 Android 中动态创建按钮 https stackoverflow com questions 3011092 how can i dynamically create a butt
  • ScrollView 中的 ListView 在 Android 上不滚动

    我在滚动时遇到问题ListView里面一个ScrollView 我有一个 Activity 顶部有一些 EditText 然后是一个带有两个选项卡的选项卡主机 每个选项卡都有一个 ListView 当 EditText 视图聚焦时 软键盘会
  • 阻止 ScrollView 将焦点设置在 EditText 上

    Android 的 ScrollView 当滚动或滑动时 喜欢在 EditText 是其子级之一时设置其焦点 当您滚动然后释放时会发生这种情况 有什么办法可以阻止这种行为吗 我几乎尝试了所有我能想到的以及我在 StackOverflow 上
  • 是否可以支持旧 API 级别的 setScrollY() (ScrollView API 14) 之类的函数?

    我正在编写一个简单的第一个 Android 应用程序 我的主要活动之一是相当长的 ScrollView 其中我有一些调用其他 ListView 的按钮 当 ListView 完成并且 ScrollView 回来时 我希望屏幕上的位置与第一次
  • 如何在 UITableView 中启用/禁用滚动?

    我知道这个命令 self tableView scrollEnabled true 问题是 我想根据scrollView位置锁定滚动 为此我这样做 let topEdge scrollView contentOffset y let fol
  • iOS 中拉动刷新跳转

    当我慢慢下拉刷新时 我看到 UIActivityIndi cator 圆圈在开始刷新之前慢慢变得更加完整 就在圆圈完成并且刷新实际触发之前 内容会向下跳跃 急速跳动 然后圆圈开始旋转 我只有在慢慢拉下时才会注意到这一点 我正在使用拉动来刷新
  • ScrollView 中的 ViewPager

    我需要有一个ViewPager里面一个ScrollView but ViewPager只是在进入时不会出现ScrollView 当我不使用时一切正常ScrollView 我在 stackoverflow 或其他网站上看到了一些类似的问题 所
  • jQuery Mobile 只滚动内容,而不是整个页面

    我正在使用 jQuery Mobile 和 Phonegap 构建一个应用程序 现在 当我获得一个页面并需要滚动时 jQuery Mobile 会滚动整个页面 而不是内容 滚动条应该仅位于内容部分所在的位置 但看起来滚动条会滚动整个页面 它
  • SwiftUI ScrollView 只向一个方向滚动

    尝试使用视图作为列表行样式来创建自定义列表 以摆脱默认情况下列表中难看的分隔线 但是 一旦我将 ZStack 行放入滚动视图中 滚动视图就会在两个方向上滚动 而不仅仅是垂直滚动 这是内容视图 NavigationView ScrollVie
  • SwiftUI:如何让项目的拖放重新排序起作用?

    我有以下 SwiftUI 视图 struct ContentView View State var model Model var body some View ScrollView LazyVGrid columns columns sp
  • Android - 材料设计 - NavigationView - 如何放置垂直滚动?

    我正在使用 NavigationViewcompile com android support design 22 2 1 嗯 一切都很好 除非它没有垂直滚动 如何通过xml设置呢 xml
  • SwiftUI ScrollView 无法禁用垂直弹跳?

    初始化程序中有一个带有 ScrollView alwaysBounceVertical false 的属性 但我似乎找不到它了 有谁知道如何禁用 SwiftUI ScrollView 上的垂直弹跳 过度滚动 是的 它已从 ScrollVie
  • Android中如何使用ScrollView?

    我有一个 XML 布局文件 但文本超出了屏幕尺寸 我需要做什么才能制作ScrollView
  • ScrollView 截掉顶部并在底部留出空间

    当我启动模拟器并进入使用此代码的屏幕时 它显示了大部分文本信息 但切断了屏幕顶部 无法向上滚动 但在底部留下了一些空间 这是代码

随机推荐

  • Linux内核-漫画

    学习的过程中发现了这个有意思的漫画 于是简单翻译了一下 原图 翻译
  • Springboot中使用策略模式+工厂模式

    策略模式和工厂模式相信大家都比较熟悉 但是大家有没有在springboot中实现策略和工厂模式 具体策略模式和工厂模式的UML我就不给出来了 使用这个这两个模式主要是防止程序中出现大量的IF ELSE IF ELSE 接下来咱们直接实现 项
  • es文档操作

    1 kibana操作 1 1新增文档 语法 POST 索引库名 doc 文档id 字段1 值1 字段2 值2 字段3 子属性1 值3 子属性2 值4 示例 POST heima doc 1 info 黑马程序员Java讲师 email zy
  • 嘴说手画Spark的内存模型

    一 内存模型 Spark的内存模型如下图所示 Reserved Memory 固定为 300MB 不受开发者控制 是启动Spark框架本身所需要的内存空间 UserMemory 是用户空间 即用户定义的数据 通常是用户在代码中定义的变量 可
  • iMazing高效便捷的数据转移功能

    近几年来iMazing设备管理工具被广大苹果用户所青睐 相比苹果的另一个设备管理工具iTunes iMazing更具有操作简单 易掌握的优势 iMazing支持将iOS手机数据备份到电脑 支持将数据恢复到苹果设备中 也支持将手机数据转移到其
  • python 注意事项(—)

    1 优先级高于 1 Since has higher precedence than 3 2 will be interpreted as 3 2 and thus result in 9 To avoid this and get 9 y
  • ChatGPT的Fine-tuning是什么?

    fine tuning基本概念 Fine tuning 微调 是指在预训练过的模型基础上 使用特定任务的数据进行进一步的训练 以使模型更好地适应该任务 在ChatGPT的情况下 Fine tuning是指在预训练的语言模型上使用对话数据进行
  • dyld: Library not loaded:

    dyld Library not loaded 问题 在使用阿里的开源库LazyScrollView的时候出现的这个问题 本地Xcode11 4 1 真机调试 dyld Library not loaded rpath LazyScroll
  • centos查看系统名称、架信息

    centos查看系统名称 架构 hostnamectl
  • 将一个数组中的元素向后移动k位

    设计一个算法 将数组A 0 n 1 中的元素循环右移K位 假设原数组序列为 a0 a0 an 2 an 1 移动后的序列为 an k an k 1 a0 a1 an k ab k 1 要求只用一个元素大小的附加存储 元素移动或变换次数与n线
  • Python 利用Turtle模块绘制国际象棋棋盘

    使用Turtle模块绘制国际象棋棋盘 使用语言 Python 3 7 3 思路 国际象棋是8 8的一个个小正方形 或者说是9横9纵的线组成 作画的时候 先做9横9纵的线 再填上灰色的小正方形 即可完成 本次画的棋盘边长为160 160 1
  • Hive中LIKE和RLIKE的区别

    1 LIKE和RLIKE的使用示例 SELECT name LIKE Alice FROM table1 表示选择name列内以ALICE作为结尾的数据 相同的功能使用RLIKE实现如下 SELECT name RLIKE Alice FR
  • docker commit 命令

    简介 在软件开发中经常需要保存软件状态 比如git 中每次提交的代码都会有版本号 可以根据提交的版本号进行恢复 docker中通过docker commit 命令提供了一个保存镜像状态的方式 使用 比如有一镜像 adaptor 1 通过do
  • cmd怎么另起一行_西语毕业论文怎么写?西语资料去哪儿找?

    西语毕业论文怎么写 西语资料去哪儿找 1 论文结构 西语 学位论文包括前置 主体 附录等三个部分 以下细节无固定先后之分 视具体学校要求而定 1前置 1 封面 由论文 中 西 文题目 姓名 学号 专业 班级 指 导老师姓名和职称 时间组成
  • 数据结构系列——栈 stack

    本期主题 数据结构之 栈 往期链接 数据结构系列 先进先出队列queue 目录 1 栈定义 2 使用动态数组实现栈 3 有趣的例子 1 栈定义 栈是什么 定义 一个后进先出的数据结构 LIFO last in first out 插入操作称
  • 美国地质调查局SRTM--30米DEM数据

    美国地质调查局 USGS SRTM DEM数据 0 简介 1 数据下载 1 1网址 https lpdaac usgs gov https lpdaac usgs gov 1 2搜索 SRTM 以列表展示 选择SRTMGL1 003 1 3
  • 转--Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )

    题目 PRML读书会第十章 Approximate Inference 近似推断 变分推断 KL散度 平均场 Mean Field 转自 http blog csdn net nietzsche2015 article details 43
  • 使用波束搜索的端到端神经网络系统中的上下文语音识别(论文翻译)

    摘要 最近的研究表明 端到端 E2E 语音识别体系结构 如Listen attent和Spell LAS 可以在LVCSR任务中获得最先进的质量结果 这种体系结构的一个优点是它不需要单独训练的发音模型 语言模型和声学模型 但是 这个属性也引
  • Redis 高可用之持久化

    目录 Redis 高可用 Redis 持久化 RDB 持久化 触发条件 执行流程 启动时加载 修改配置文件 AOF 持久化 配置 执行流程 命令追加 append 文件写入 write 和文件同步 sync 文件重写 rewrite 文件重
  • Unity实现一个可扩展的UGUI无限滑动列表控件

    12月20日新增 增加一个可收缩的滑动列表 适用于游戏中的任务系统 成就等 使用说明 创建时需要两个模板slot 一个是button 另一个则是btn下显示的cell 配置如下图添加ExpandableView脚本 新增的IsDefault