unity——Button组件单击双击长按功能

1.实现单击、双击、长按功能

using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
public class ButtonControl_Click_Press_Double : MonoBehaviour, IPointerClickHandler, IPointerDownHandler, IPointerUpHandler, IPointerExitHandler
{public float pressDurationTime = 1;public bool responseOnceByPress = false;public float doubleClickIntervalTime = 0.5f;public UnityEvent onDoubleClick;public UnityEvent onPress;public UnityEvent onClick;private bool isDown = false;private bool isPress = false;private float downTime = 0;private float clickIntervalTime = 0;private int clickTimes = 0;void Update(){if (isDown){if (responseOnceByPress && isPress){return;}downTime += Time.deltaTime;if (downTime > pressDurationTime){isPress = true;onPress.Invoke();}}if (clickTimes >= 1){clickIntervalTime += Time.deltaTime;if (clickIntervalTime >= doubleClickIntervalTime){if (clickTimes >= 2){onDoubleClick.Invoke();}else{onClick.Invoke();}clickTimes = 0;clickIntervalTime = 0;}}}public void OnPointerDown(PointerEventData eventData){isDown = true;downTime = 0;}public void OnPointerUp(PointerEventData eventData){isDown = false;}public void OnPointerExit(PointerEventData eventData){isDown = false;isPress = false;}public void OnPointerClick(PointerEventData eventData){if (!isPress){//onClick.Invoke();clickTimes += 1;}elseisPress = false;}
}

2.使用

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ButtonsControl_1 : MonoBehaviour
{ButtonControl_Click_Press_Double btn;void Start(){btn = GetComponent<ButtonControl_Click_Press_Double>();btn.onClick.AddListener(Click);btn.onPress.AddListener(Press);btn.onDoubleClick.AddListener(DoubleClick);}void Click(){Debug.Log("click");}void Press(){Debug.Log("press");}void DoubleClick(){Debug.Log("double click");}
}

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

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

相关文章

组合积木(模拟

题目 #include<bits/stdc.h> using namespace std; #define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) #define int long long #define eb emplace_back const int N1e39; int n,m; vector<pair<char,int> > s[N]; signed main(){ios;cin>…

紫光同创 ----- 集创赛 ---- 点亮LED

目录 一. 安装软件&#xff1a; 1. 按照安装手册一步一步走 2. 等.... 3. 桌面图标 二. 创建工程 1. 双击PDS 2. 点击新建工程 New Project 3. 弹出如下界面 点击 -->> Next 4. 选择工程路径和名称 5. 选择工程类型 6. 剩下的全部next &#xff08;直到…

SOCKS5代理、代理IP、跨界电商、游戏技术与网络安全的综合探讨

在全球经济一体化的大背景下&#xff0c;"出海"已成为许多企业尤其是电商和游戏行业的重要战略方向。然而&#xff0c;随着企业业务的扩展到海外市场&#xff0c;网络安全、数据隐私和内容访问等问题也随之而来。本文将深入探讨SOCKS5代理、代理IP在跨界电商和游戏行…

idea: 没有 new java class

如图&#xff1a; 解决&#xff1a; 右键点击--> Mark Directory as --> Sources Root ok

在CentOS 7上如何将MySQL数据目录更改到新位置

简介 数据库会随着时间的推移而增长&#xff0c;有时会超出文件系统的空间。当它们位于与操作系统的其余部分相同的分区上时&#xff0c;您还可能遇到I/O争用。RAID、网络块存储和其他设备可以提供冗余和其他理想的功能。无论您是添加更多空间&#xff0c;评估性能优化的方法&…

jvm的面试回答

1、jvm由本地方法栈、虚拟机栈、方法区、程序计数器、堆组成&#xff0c;其中堆和方法区是线程间共享的&#xff0c;程序计数器、虚拟机栈和本地方法栈是线程私有的。 2、虚拟机栈&#xff1a; 保存每个java方法的调用、保存局部变量表、等 栈可能出现内存溢出&#xff0c;如果…

python---3--sort、lambdalen(list1)、sorted_numbers = sorted(numbers)、list.sort()

学习目标&#xff1a; lambda len(list1) sorted_numbers sorted(numbers)list.sort() 目录 学习目标&#xff1a; 学习内容&#xff1a; 匿名函数 lambda表达式 lambda [参数]: 函数 不需要return len(list1) sorted_numbers sorted(numbers) list.sort(keyNone, r…

ActiveMQ入门案例(queue模式和topic模式)

目录 前言&#xff1a;为什么使用消息中间件&#xff1f; 异步通信 缓冲 解耦 前提&#xff1a;安装并启动activemq 一、点对点&#xff08;point to point&#xff0c; queue&#xff09; 1.1 创建maven项目 1.2 Pom依赖 1.2 JmsProduce 消息生产者 1.3 JmsConsumer…

深入理解Java中Stream流常用方法及示例

深入理解Java中Stream流常用方法及示例 一、介绍二、举例说明1. filter方法2. map方法3. sorted方法4. forEach方法5. reduce方法6. collect方法7. flatMap方法8. anyMatch和allMatch方法9. findFirst和findAny方法10. skip和limit方法11. distinct方法 一、介绍 Java 8引入的…

背 单 词 (考研词汇闪过)

单词&#xff1a; 买考研词汇闪过 研究艾宾浩斯遗忘曲线 https://www.bilibili.com/video/BV18Y4y1h7YR/?spm_id_from333.337.search-card.all.click&vd_source5cbefe6dd70d6d84830a5891ceab2bf9 单词方法 闪记背两排&#xff08;5min&#xff09;重复一遍&#xff08;2mi…

Pixel-GS:用于3D高斯溅射的具有像素感知梯度的密度控制

Pixel-GS: Density Control with Pixel-aware Gradient for 3D Gaussian Splatting Pixel-GS&#xff1a;用于3D高斯溅射的具有像素感知梯度的密度控制 Zheng Zhang  Wenbo Hu†  Yixing Lao   老宜兴市郑张文博胡 † Tong He  Hengshuang Zhao† 赵同和恒双 †1122113311 …

Web前端 Javascript笔记1

为什么学习 JavaScript? JavaScript 是 web 开发人员必须学习的 3 门语言中的一门&#xff1a; HTML 定义了网页的内容CSS 描述了网页的布局JavaScript 控制了网页的行为 JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后&#xff0c;可由所有的现代浏…

BTS441RGATMA1 N沟道 43V 17A高侧电源开关芯片 英飞凌

BTS441RGATMA1是一款由Infineon Technologies制造的高侧开关电源芯片。 直 接 联 系 客 服 价 格 比 商 城 下 单 更 便 宜 BTS441RGATMA1具有以下功能&#xff1a; 高端电源开关&#xff1a;BTS441RGATMA1是一种N通道功率场效应晶体管&#xff08;FET&#xff09;&#xff…

图像处理与视觉感知---期末复习重点(7)

文章目录 一、图像压缩1.1 三种冗余1.2 模型1.3 信息测量 二、无误差压缩2.1 哈夫曼编码2.1.1 步骤2.1.2 例题 2.2 算术编码 三、变换编码 一、图像压缩 1.1 三种冗余 1. 三种基本的是数据冗余为&#xff1a;编码冗余、像素间冗余、心理视觉冗余。 2. 编码冗余&#xff1a;如果…

途游游戏,科锐国际(计算机类),快手,CVTE,得物,蓝禾,奇安信,顺丰,康冠科技,金证科技24春招内推

途游游戏&#xff0c;科锐国际&#xff08;计算机类&#xff09;&#xff0c;快手&#xff0c;CVTE&#xff0c;得物&#xff0c;蓝禾&#xff0c;奇安信&#xff0c;顺丰&#xff0c;康冠科技&#xff0c;金证科技24春招内推 ①得物 【岗位】技术&#xff0c;设计&#xff0c;…

⭐Unity 里调用弹出电脑系统文件选择窗 (选择图片/文件)

今天遇到的需求要从Uinty里调用选择程序外的图片&#xff0c;类似手机环境下拿图库的照片一样。 效果如下: 话不多说 直接上代码&#xff01; 1.编辑器模式下 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using Syst…

vue中预览docx、xlsx、pptx、pdf

前言&#xff1a;其实本来是要做全类型文件预览的&#xff0c;但是一直找不到合适的doc,xlx,ppt预览插件。要是有可以使用的&#xff0c;可以评论推荐给我 我使用的node版本&#xff1a;v18.19.1 参考官网&#xff1a;preview 文件预览 | ran 引入方式&#xff1a; //安装组…

瀑布流布局

瀑布流布局&#xff1a;瀑布流&#xff0c;又称瀑布流式布局&#xff0c;是比较流行的一种页面布局&#xff0c;视觉表现为参差不齐的多栏布局。 问题概述: 一次性生成&#xff0c;不需要再次增加&#xff0c;排序顺序由上倒下&#xff0c;由左到右 解决方案&#xff1a; //…

深度分析thinkphp类的自动加载

类的自动加载是框架中非常重要的特性&#xff0c;它允许你在使用类时无需手动包含或引入对应的文件。类的自动加载实现起来很简单&#xff0c;只需这样的一个函数spl_autoload_register就能实现。但框架都有各自的加载规范&#xff0c;并不是所有类都能被自动加载&#xff0c;因…

fatal: Need to specify how to reconcile divergent branches.

报错 hint: You have divergent branches and need to specify how to reconcile them. hint: You can do so by running one of the following commands sometime before hint: your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hi…