当前位置: 首页 > news >正文

【Unity】UI点击事件处理器

目录

  • 前言
  • 脚本

前言

在开发过程中,经常需要监听UI的点击事件,这里我给大家整理一下,脚本直接挂在需要监听的节点上即可。

脚本

using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;namespace GameLogic
{/// <summary>/// Ui点击事件处理器/// </summary>public class UIEventHandler : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler, IPointerUpHandler, IPointerDownHandler{UnityAction enterEvent;UnityAction exitEvent;UnityAction clickEvent;UnityAction downEvent;UnityAction upEvent;public void Init(){enterEvent = null;exitEvent = null;clickEvent = null;downEvent = null;upEvent = null;}/// <summary>/// 添加进入事件/// </summary>/// <param name="action"></param>public void AddEnterEvent(UnityAction action){enterEvent = action;}/// <summary>/// 添加离开事件/// </summary>/// <param name="action"></param>public void AddExitEvent(UnityAction action){exitEvent = action;}/// <summary>/// 添加点击事件/// </summary>/// <param name="action"></param>public void AddClickEvent(UnityAction action){clickEvent = action;}/// <summary>/// 添加按下事件/// </summary>/// <param name="action"></param>public void AddDownEvent(UnityAction action){downEvent = action;}/// <summary>/// 添加松开事件/// </summary>/// <param name="action"></param>public void AddUpEvent(UnityAction action){upEvent = action;}/// <summary>/// 进入范围触发/// </summary>/// <param name="eventdata"></param>public void OnPointerEnter(PointerEventData eventdata){//Debug.Log("===进入===");enterEvent?.Invoke();}/// <summary>/// 退出范围触发/// </summary>/// <param name="eventdata"></param>public void OnPointerExit(PointerEventData eventdata){//Debug.Log("===离开===");exitEvent?.Invoke();}/// <summary>/// 按下+松开才能触发(松开时需要在UI范围内,不然则不触发)/// </summary>/// <param name="eventdata"></param>public void OnPointerClick(PointerEventData eventdata){//Debug.Log("===点击===");clickEvent?.Invoke();}/// <summary>/// 按下触发/// </summary>/// <param name="eventdata"></param>public void OnPointerDown(PointerEventData eventdata){//Debug.Log("===按下===");downEvent?.Invoke();}/// <summary>/// 松开触发/// </summary>/// <param name="eventdata"></param>public void OnPointerUp(PointerEventData eventdata){//Debug.Log("===抬起===");upEvent?.Invoke();}}
}
http://www.xdnf.cn/news/3079.html

相关文章:

  • 文件系统 软硬连接
  • 类和对象(下篇)(详解)
  • 2025.4.20机器学习笔记:文献阅读
  • 【前端】跟着maxkb学习流程图画法
  • Qt QML实现Windows桌面歌词动态播放效果
  • Win10如何一键切换IP地址教程
  • ubtuntu安装docker拉取iwebsec镜像
  • 关于STM32G030和G070未初始化看门狗,程序里面喂狗会导致擦除Flash失败或进入‘HardFault_Handler’
  • WebSocket 实现数据实时推送原理
  • GPT,Bert类模型对比
  • 4.17---实现商铺和缓存与数据库双写一致以及宕机处理
  • 2025.04.17【Dendrogram】生信数据可视化:Dendrogram图表详解
  • 网络编程 - 1
  • Genspark:重新定义AI搜索与代理的全能型工具
  • 私人笔记:动手学大模型应用开发llm-universe项目环境创建
  • 【前端vue生成二维码和条形码——MQ】
  • 【随身WIFI】随身WiFi Debian系统优化教程
  • AUTOSAR图解==>AUTOSAR_SWS_DefaultErrorTracer
  • 计算机网络 - UDP协议
  • 4.15BUUCTF Ez_bypass,HardSQL,AreUSerialz,BabyUpload,CheckIn
  • 【Docker】运行错误提示 unknown shorthand flag: ‘d‘ in -d ----详细解决方法
  • jQuery入门和选择器
  • JavaScript-立即执行函数(Immediately Invoked Function Expression,IIFE)
  • 【AI量化第24篇】KhQuant 策略框架深度解析:让策略开发回归本质——基于miniQMT的量化交易回测系统开发实记
  • dumpsys--音频服务状态信息
  • ASP.NET Core Web API 配置系统集成
  • 解决 VSCode 中 NVM 配置后无法识别 Node 和 NPM 的问题
  • 京东3D空间视频生成技术探索与应用
  • 游戏引擎学习第230天
  • [图论]Kruskal