【GamePlay】两个ScrollView插件,Super ScrollView UIExtensions

news2024/12/24 9:51:21

前言

记录一下最近了解使用的两个滚动列表插件,UIExtensions 和Super ScrollView 。

原生的ScrollView 只能滚动 Viewport中Content范围内的物体,如果要使用必须得做一些功能扩展,很不方便,于是找了这两个插件。

前者不只是滚动列表,是一个开源的组件库。后者是专门得到ScrollView扩展,使用起来简单一些。

UIExtensions

链接:https://github.com/Unity-UI-Extensions/com.unity.uiextensions
这是个UI组件库,不只是ScrollView的扩展,这里只记录一下滚动列表的用法

目录结构

这个插件里组件很多,我们只看这个
在这里插入图片描述

使用

这个官方示例中有一点点的不好的地方,是这个示例名字起的太“通用”了,直接叫Context、ScrollView,一开始也让我觉得是通用组件。实际上,要为每个ScrollView分别创建这几个文件。
在这里插入图片描述
我以我的使用示例举例,这样更清晰一些,官方示例不容易看不出哪些结构是自己定义的。

首先,必须得定义四个文件,下图中的前四个,第四个是UI控制组件。
在这里插入图片描述
其中的xxxScrollView挂在到UI中的ScrollView组件上。
创建一个预制体,把xxxCell挂在到预制体上,并挂到这个xxxScrooView上,如下图所示
在这里插入图片描述
xxxContext是这个组件的数据。
xxxItemData是每一个Cell的数据。
使用时在下图位置处指定,这时候就可以去看看官方例子,官方例子直接用的Context命名,很容易让人觉得是通用基础结构,实际是要自己定义的结构。
在这里插入图片描述
以上只是结构的定义,如果要更新数据,需要调用xxxScrollView的UpdateData(实际是调用了扩展中的UpdateContents方法),需要传入一个xxxItemData的列表。
在这里插入图片描述
在xxxCell中要自定义更新时做什么,每个Cell根据传来的数据更新UI。
在这里插入图片描述
理解了这几个组件的关系,使用起来就简单了。

问题

不过,这个使用过程中还是有问题,启动游戏第一次调用ScrollView的UpdateData更新UI,总是失效,之后再调用就可以生效了,至今没有查到问题所在。。。

Super ScrollView

这个就ScrollView功能来说,比上面那个方便一些,但这个是收费的。

官方例子做的有点乱,很多无用的东西,没有突出核心用法,让我看了好久才理解。

目录结构

组件导入后的目录结构如下,其中Editor和Scripts目录是插件代码,Demo目录可以忽略
在这里插入图片描述
理解核心代码,只需要看三个文件
在这里插入图片描述

怎么使用

第一,在自己创建的ScrollView上挂上LoopListView2
第二,创建一个Cell预制体,下图中Cell只是一个Button
第三,预制体拖动到LoopListView2 组件上
在这里插入图片描述
第四,编写脚本初始化
下面这是改的官方Demo脚本,去掉冗余信息,只调用一下LoopListView2组件的初始化就行,需要传入数量和回调函数,这个回调函数的作用就是,当ui里显示当前index的物体时,就调用这个回调,加入初始化五个物体,就会调用五次,index不同。
在这个回调里,可以自己设置每个Cell的信息,如果不设置就是下图所示,固定返回LoopListViewItem2这个结构。
注释掉的ItemData、ListItem2这些都是自己实现的,前者是数据,后者是cell UI脚本。
在这里插入图片描述
自己要使用的话,就是详细写写这个回调函数,定义好Cell的数据和UI显示,在回调的时候根据index获得数据,设置给UI。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文了解JVM整体设计

一、JDK / JRE / JVM二、.Java 文件运行过程三、JVM运行时数据区3.1 Method Area3.2 Heap3.3 Java Virtual Machine Stacks3.4 Native Method Stacks3.5 The PC Register四、JVM内存模型4.1 JVM对象创建和回收过程五、垃圾收集5.1 确定垃圾收集对象5.1.1 引用计数法5.1.2 可达性…

2023年英语二大作文押题猜想(达立易考)

又到了考前大开脑洞的时间了!每年一到这个时间点,关于押题猜题的话题就会铺天盖地而来,众多名师大咖更是会集毕生所学,期待可以在这个环节押中部分题目彰显实力,其中主观题就是大家集中关注的重要热点模块。押题听起来…

声纹识别开源工具 ASV-Subtools

今天非常荣幸有机会在Speechhome语音技术研讨会上分享我们团队在开源项目上的一些工作。今天我分享的主题是声纹识别开源工具ASV-Subtools。 今天我分享的主要有5个部分的内容,分别是背景介绍、工具介绍、实验结果、Subtools工程化、总结与展望。其中Subtools工程化…

【ROS】机械人开发五--ROS基本概念的程序实现

机械人开发五--ROS基本概念的程序实现一、开发工具二、RoboWare Studio的基本使用2.1 软件启动2.2 修改界面语言2.3 使用2.4 编译文件2.5 卸载三、话题通信四、话题的代码编写4.1 发布端4.2 接收端4.3 测试五、自定义消息5.1 自定义消息类型5.2 自定义消息发布端5.3 自定义消息…

el-menu动态加载路由,菜单的解决方案

先看需要实现的效果 这里有一级也有二级菜单,注意二级菜单的父目录(”选项设置“点击不会跳转,只是展开目录),然后点击去详情页,需要跳到一个隐藏的路由,不在菜单展示的路由 还有一点要注意&…

LaTex常用技巧5:公式太长换行并加大括号

使用LaTex做笔记的时候发现公式太长,一行会超出页面,于是想到换行。 原来的代码,这里使用了包bm,测试的时候前面请使用\usepackage{bm}。 \begin{equation}_{i}^{G} {\bm{a}}\begin{cases} _{i}^{i-1}\ddot{\bm{p}}, &i1\\_…

web课程设计网页规划与设计 html+css+javascript+jquery+bootstarp响应式游戏网站Bootstrap模板(24页)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

网址,URL,域名,IP地址,DNS,域名解析(转载)

一、基本常识 互联网上的所有数据都是存储在主机(服务器)上互联网中的所有主机都拥有唯一的IP地址互联网中任意两台主机通信都是通过IP地址来实现 上网的实质 就是获取网址对应主机上的数据并在用户主机上进行展示(浏览器上) 疑问:互联网中的任意两台主机通信是依…

详细介绍百度ERNIE:通过知识集成增强表示

文章目录ERNIE简介相关工作采用矢量表示单词 ,上下文无关的表示采用上下文来预测丢失的单词,没有考虑先验知识采用异构数据ERNIE的详细实现Transformer编码器知识整合基本级别掩码短语级别掩码实体级别掩码实验异构语料库预训练DLM(对话语言模…

python自动化:桌面壁纸下载器,满足你对桌面壁纸的无限畅想!

随着计算机性能的提升,人们对计算机个性化的要求也越来越高了,自己使用的计算机当然要设置成自己喜欢的风格! 对于桌面壁纸有着强烈要求的朋友们有福了,推荐一个微软免费畅玩无限高清壁纸的官网。 https://cn.bing.com/images/t…

深入学习数组

目录 一、一维数组 1、数组的创建和初始化 2、一维数组的使用 3、*一维数组在内存中的存储 二、二维数组 1、二维数组的创建和初始化 2、二维数组的使用 3、*二维数组在内存中的存储 三、数组越界 一、一维数组 1、数组的创建和初始化 数组是一组相同类型元素的集合。 数组…

UNIAPP实战项目笔记42 购物车页面新增收货地址

UNIAPP实战项目笔记42 购物车页面新增收货地址 设置新增收货地址页面布局和功能 具体内容图片自己替换哈&#xff0c;随便找了个图片的做示例 用到了vuex的状态机,具体位置见目录结构 代码 my-add-path.vue 页面部分 my-add-path.vue 设置页面布局 用到了vuex的状态机 <te…

steam搬砖副业,月入2万+,内含全套讲解

Steam平台是一款国外知名的数字游戏社交平台&#xff0c;steam游戏平台起初只是一个整合游戏的下载平台&#xff0c;随着软件的发展&#xff0c;逐渐演变为了游戏社交平台&#xff0c;steam是世界上目前最大的游戏平台之一&#xff0c;而「网易BUFF」是一款由网易公司推出&…

Unity3D简陋版跑酷游戏

目录 功能演示 功能简介 制作步骤 功能演示 链接&#xff1a;https://pan.baidu.com/s/1E_2JXWlVJNf3S5l-dH2UuQ提取码&#xff1a;dm5e 视频教学:Unity3D大作业 超级简陋版的跑酷游戏_哔哩哔哩_bilibili 功能简介 本次跑酷游戏主要从跑道&#xff0c;UI设计&#xff0c;…

[附源码]java毕业设计小区宠物管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

MyBatis--获取参数值

MyBatis获取参数值的两种方式 &#xff1a; ${} 和 #{} ${}的本质是字符串 &#xff0c;#{}的本质是占位符赋值 ${}使用字符串拼接的方式拼接sql &#xff0c;若为字符串类型或日期类型的字段进行赋值时&#xff0c;需要手动加单引号。 #{}使用占位符赋值的方式拼接sql &#x…

[附源码]java毕业设计小锅米线点餐管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【Spring Cloud实战】Spring Cloud Bus消息总线

gitee地址&#xff1a;https://gitee.com/javaxiaobear/spring-cloud_study.git 在线阅读地址&#xff1a;https://javaxiaobear.gitee.io/ 1、概述 Spring Cloud Bus将分布式系统的节点与轻量级消息代理链接。这可以用于广播状态更改&#xff08;例如配置更改&#xff09;或其…

15.PyQt5中的事件系统之事件(QEvent)简介

PyQt5中的事件系统 一、什么是Qt中的事件 事件&#xff08;event&#xff09;是由窗口系统或者Qt自身产生的事情或动作的通称。当用户按下或者松开键盘或鼠标的按键时&#xff0c;就可以产生一个键盘或者鼠标事件&#xff1b;当某个窗口第一次显示的时候&#xff0c;就会产生一…

Pytorch的入门操作(二)

2、Pytorch 2.1 Pytorch的介绍和安装 目标&#xff1a; 知道如何安装Pytorch 2.1.1 Pytorch的介绍 Pytorch是Facebook发布的深度学习框架&#xff0c;由其易用性&#xff0c;友好性&#xff0c;深受广大用户青睐 2.1.2 Pytorch的版本 2.1.3 Pytorch的安装 安装地址介绍&…