Unity 自动轮播、滑动轮播
如图所示,可设置轮播间隔,可左右滑动进行轮播

1.在UGUI创建个Image,添加自动水平组件

2.添加并配置脚本

3.代码如下,都有注释
using UnityEngine;
using UnityEngine.UI;public class IndicatorManager : MonoBehaviour
{public GameObject indicatorPrefab; // 轮播物体的预制体public Transform indicatorParent; // 轮播物体的父级对象private int pageCount = 5; // 页面数量private GameObject[] indicatorsArray; // 存储所有轮播物体的数组private int currentPage = 0; // 当前页面索引private Vector2 slideStartPosition; // 记录滑动的起始点private bool isSliding = false; // 标志是否正在执行滑动操作private bool isAutoSlidingPaused = false; // 标志是否暂停自动轮播private float autoSlideInterval = 3f; // 自动轮播间隔时间private float autoSlideTimer = 0f; // 计时器,用于自动轮播private void Start(){CreateIndicators();UpdateIndicators();}private void Update(){// 更新计时器UpdateTimer();// 检测左右滑动手势DetectSwipe();}// 创建页面指示器private void CreateIndicators(){indicatorsArray = new GameObject[pageCount];for (int i = 0; i < pageCount; i++){GameObject indicator = Instantiate(indicatorPrefab, indicatorParent);indicatorsArray[i] = indicator;}}// 设置当前页面,并更新页面指示器private void SetCurrentPage(int pageIndex){currentPage = Mathf.Clamp(pageIndex, 0, pageCount - 1);UpdateIndicators();}// 更新页面指示器的显示状态private void UpdateIndicators(){for (int i = 0; i < pageCount; i++){// 将当前页面的轮播物体颜色设置为白色,其他页面的轮播物体颜色设置为灰色indicatorsArray[i].GetComponent<Image>().color = (i == currentPage) ? Color.white : new Color(0.5f, 0.5f, 0.5f, 0.5f);}}// 自动轮播方法private void AutoSlide(){// 如果没有正在执行滑动操作且未暂停自动轮播,则切换到下一个页面if (!isSliding && !isAutoSlidingPaused){SetCurrentPage((currentPage + 1) % pageCount);}}// 检测左右滑动手势private void DetectSwipe(){if (Input.GetMouseButtonDown(0)){// 记录滑动的起始点if (IsInsideParent(Input.mousePosition)){slideStartPosition = Input.mousePosition;}}else if (Input.GetMouseButton(0)){float deltaX = Input.mousePosition.x - slideStartPosition.x;// 如果没有正在执行滑动操作且滑动距离足够大,则切换页面if (!isSliding && !isAutoSlidingPaused && Mathf.Abs(deltaX) > 50f && IsInsideParent(Input.mousePosition)){int direction = (deltaX > 0) ? -1 : 1;SetCurrentPage((currentPage + direction + pageCount) % pageCount);// 标志为正在执行滑动操作isSliding = true;// 暂停自动轮播PauseAutoSlide();}}else if (Input.GetMouseButtonUp(0)){// 重置滑动标志isSliding = false;// 恢复自动轮播ResumeAutoSlide();}}// 判断坐标是否在父物体内private bool IsInsideParent(Vector2 position){RectTransform parentRect = indicatorParent.GetComponent<RectTransform>();return RectTransformUtility.RectangleContainsScreenPoint(parentRect, position);}// 更新计时器private void UpdateTimer(){// 如果没有正在执行滑动操作且未暂停自动轮播,则更新计时器if (!isSliding && !isAutoSlidingPaused){autoSlideTimer += Time.deltaTime;// 如果计时器超过轮播间隔时间,则执行自动轮播if (autoSlideTimer >= autoSlideInterval){AutoSlide();// 重置计时器autoSlideTimer = 0f;}}}// 暂停自动轮播private void PauseAutoSlide(){isAutoSlidingPaused = true;}// 恢复自动轮播,并重置计时器private void ResumeAutoSlide(){isAutoSlidingPaused = false;autoSlideTimer = 0f;}
}
相关文章:
Unity 自动轮播、滑动轮播
如图所示,可设置轮播间隔,可左右滑动进行轮播 1.在UGUI创建个Image,添加自动水平组件 2.添加并配置脚本 3.代码如下,都有注释 using UnityEngine; using UnityEngine.UI;public class IndicatorManager : MonoBehaviour {public …...
纯html+js+css个人博客
首页 <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"><title>主页</title><!-- 引入layui css文件 --><link rel"stylesheet" href"layui-…...
二百二十一、HiveSQL报错:return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
一、目的 在运行HiveSQL时,执行报错 tatement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 二、在yarn上查看任务报错 The required MAP capability is more than the supported max container capability in t…...
JavaEE学习笔记 2024-1-25 --VUE的入门使用
上一篇 个人整理非商业用途,欢迎探讨与指正!! 文章目录 14.VUE基础14.1VUE的入门使用14.2条件判断14.3循环渲染14.4v-bind绑定标签属性14.5v-model表单标签的双向绑定14.6事件处理14.7axios 14.VUE基础 前端框架 UI框架:页面渲染Bootstrap,L…...
php-fpm详细讲解
PHP-FPM(FastCGI Process Manager)是PHP的一种运行模式,用于处理动态HTTP请求。 它与传统的模块式PHP(如Apache模块)相比,将PHP解析和执行过程单独封装为一个独立的进程池,通过FastCGI协议与We…...
小白水平理解面试经典题目LeetCode 455 Assign Cookies【Java实现】
455 分配cookies 小白渣翻译: 假设你是一位很棒的父母,想给你的孩子一些饼干。但是,你最多应该给每个孩子一块饼干。 每个孩子 i 都有一个贪婪因子 g[i] ,这是孩子满意的 cookie 的最小大小;每个 cookie j 都有一个…...
uniapp 问题汇总-问题数(2)
ios scroll-view无法滚动 使用uview折叠面板嵌套scroll-view 嵌套之后安卓可以滚动,ios无法滚动 <u-collapse accordion opencollapseOpen changecollapseChange ref"uCollapse" :valueuCollapseValue><u-collapse-item :nameindex :title&quo…...
[AG32VF407]国产MCU+FPGA Verilog编写控制2路gpio输出不同频率方波实验
视频讲解 [AG32VF407]国产MCUFPGA Verilog编写控制2路gpio输出不同频率方波实验 实验过程 根据原理图,选择两个pin脚作为输出 修改VE文件,clk选择PIN_OSC,使用内部晶振8Mhz,gpio使用PIN_51和52,pinout是数组 添加pll…...
python coding with ChatGPT 打卡第15天| 二叉树:翻转二叉树、对称二叉树
相关推荐 python coding with ChatGPT 打卡第12天| 二叉树:理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 文章目录 翻转二叉树Key Points相关题目视频讲解重点分析递归遍历…...
Python(19)Excel表格操作Ⅰ
目录 导包 读取EXCEL文件 1、获取worksheet名称 2、设定当前工作表 3、输出目标单元格数据 4、工作表.rows(行) 5、工作表.columns(列) 小结 导包 要想使用 python 操作 Excel 文件,应当导入 openpyxl 包。在…...
HiveSQL题——聚合函数(sum/count/max/min/avg)
目录 一、窗口函数的知识点 1.1 窗户函数的定义 1.2 窗户函数的语法 1.3 窗口函数分类 聚合函数 排序函数 前后函数 头尾函数 1.4 聚合函数 二、实际案例 2.1 每个用户累积访问次数 0 问题描述 1 数据准备 2 数据分析 3 小结 2.2 各直播间最大的同时在线人数 …...
计算机是什么做的
背景 虽然我是科班出身的,但是上大学时候,对这些内容并不感兴趣,只是简单的进行做题,考试而已。并没有思考,为啥学计算机组成原理,模电数电,微机原理,单片机,操作系统啥…...
C++多线程1(复习向笔记)
创建线程以及相关函数 当用thread类创建线程对象绑定函数后,该线程在主线程执行时就已经自动开始执行了,join起到阻塞主线程的作用 #include <iostream> #include <thread> #include <string> using namespace std; //测试函数 void printStrin…...
代理IP在游戏中的作用有哪些?
游戏代理IP的作用是什么?IP代理软件相当于连接客户端和虚拟服务器的软件“中转站”,在我们向远程服务器提出需求后,代理服务器首先获得用户的请求,然后将服务请求转移到远程服务器,然后将远程服务器反馈的结果转移到客…...
SVN Previous operation has not finished; run ‘cleanup‘ if it was interrupted
SVN cleanup出现下面的提示: svn: E155017: Can’t install ‘*’ from pristine store, because no checksum is recorded for this file svn报错:“Previous operation has not finished; run ‘cleanup’ if it was interrupted“ 解决办法 当遇到…...
MATLAB知识点:MATLAB的文件管理
讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。 MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第2章 上一章我们说过,MATLAB是一款非常强…...
【深度学习】MNN ImageProcess处理图像顺序,逻辑,均值,方差
文章目录 介绍Opencv numpy等效的MNN处理 介绍 MNN ImageProcess处理图像是先reisze还是后resize,均值方差怎么处理,是什么通道顺序?这篇文章告诉你答案。 Opencv numpy 这段代码是一个图像预处理函数,用于对输入的图像进行一系…...
代码随想录算法训练营29期Day35|LeetCode 860,406,452
文档讲解:柠檬水找零 根据身高重建队列 用最小数量的箭引爆气球 860.柠檬水找零 题目链接:https://leetcode.cn/problems/lemonade-change/description/ 思路: 很简单,模拟即可。统计五美元、十美元和十五美元的个数。给五美元…...
20240130金融读报1分钟小得01
1、开放银行本质上是以用户需求为核心,以场景服务为切入点的共享平台金融模式,一定程度上加快了商业银行“隐形”和金融服务的无缝和泛在 2、利用自身优势进行差异化竞争,比如农信的客户面对面交流、全方位覆盖、政银紧密合作。针对劣势进行互…...
刷力扣题过程中发现的不熟的函数
C中不熟的函数 1.memset() 头文件:<string.h> void *memset(void *s,int c,unsigned long n); 为指针变量s所指的前n个字节的内存单元填充给定的int型数值c 如: int a[10]; memset(a,0,sizeof(a)); //将数组a中的数全部赋值为02.sort() &#…...
D2DX如何让暗黑破坏神2在4K显示器上流畅运行:5个关键技术解析
D2DX如何让暗黑破坏神2在4K显示器上流畅运行:5个关键技术解析 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 当…...
Lovable后端集成方案深度拆解(含Spring Boot 3.2+GraalVM+OpenTelemetry完整Demo)
更多请点击: https://kaifayun.com 第一章:Lovable后端集成方案全景概览 Lovable 是一个面向现代 Web 应用的轻量级后端协作框架,其核心设计理念是“可组合、可观测、可演进”。它不绑定特定语言或运行时,而是通过标准化协议与契…...
框架组件识别:从版本号到利用链的渗透实战指南
1. 这不是“扫个版本号”那么简单:框架组件识别在真实渗透中的战略定位 很多人看到“框架组件识别”,第一反应是跑个whatweb、wappalyzer,截图发报告里写一句“识别到Spring Boot 2.6.3”,就算交差了。我干这行十多年,…...
问卷数据分析避坑指南:你的验证性因子分析(CFA)模型为什么总拟合不好?
问卷数据分析避坑指南:验证性因子分析(CFA)模型拟合不良的深度诊断 当你满怀期待地将精心设计的问卷数据导入统计软件,准备验证理论模型时,却发现拟合指标一片飘红——卡方值高得离谱,RMSEA超出临界值&…...
如何在macOS上免费安装HSTracker:终极炉石传说套牌追踪器完整指南
如何在macOS上免费安装HSTracker:终极炉石传说套牌追踪器完整指南 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker 还在为炉石传说对局中记不住对手出牌而烦恼…...
后端开发者体验 AI 前端:用 TinyVue 做一个智能业务表单 Demo
摘要 作为 Java 后端开发者,我平时更多关注接口、SQL 和业务逻辑,但后台系统里也绕不开表单、列表和报表页面。本文结合 OpenTiny NEXT 学习体验,用 TinyVue 做一个智能业务表单 Demo,聊聊 AI 前端对后端开发者到底有没有实际帮助…...
别再死记硬背了!用‘重复局面’这道CSP真题,带你彻底搞懂C++中map容器的使用场景与底层逻辑
从国际象棋到红黑树:用CSP真题解锁C map的底层力量 国际象棋大师卡斯帕罗夫曾说:"棋局如同程序,每一步都是对数据结构的选择。"当我们面对CSP考试中那道看似简单的"重复局面"题时,表面上是考察字符串处理能力…...
终极指南:如何简单快速地解锁艾尔登法环帧率限制并优化游戏体验
终极指南:如何简单快速地解锁艾尔登法环帧率限制并优化游戏体验 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirro…...
机器学习赋能微服务架构拆分:从图划分到智能决策的工程实践
1. 从单体巨石到微服务:为什么我们需要机器学习的“火眼金睛”在软件架构演进的漫长征途中,我们正经历一场深刻的范式转移。曾几何时,单体架构(Monolithic Architecture)因其开发简单、部署直接而大行其道,…...
别再只会用top了!Linux网络实时监控神器iftop保姆级教程(含常用快捷键与过滤技巧)
从top到iftop:Linux网络流量监控的终极实战指南如果你已经熟练使用top命令监控系统资源,却对网络流量分析感到无从下手,那么iftop将成为你工具箱中不可或缺的神器。就像top之于CPU和内存,iftop专为实时网络监控而生,它…...
