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

UGUI事件系统EventSystem

一. 事件系统概述

 

Unity的事件系统具有通过鼠标、键盘、游戏控制柄、触摸操作等输入方式,将事件发送给对象的功能。事件系统通过场景中EventSystem对象的组件EventSystem和Standalone Input Module发挥功能。EventSystem对象通常实在创建画布的同时被创建的,通常附加了EventSystem组件的对象,一个场景中只能存在一个。

二. Event System组件

2.1 Event System组件概述

事件系统和核心功能是当发生了输入事件后,判断事件类型并把输入事件发送给应该收到事件的对象,对象的事件处理函数被调用

输入模块组件Standalone Input Module组件和Touch Input Module(已不推荐使用,后文忽略此组件)用来确定事件类型和触发处理函数

射线投射组件来确定收到事件的对象(UGUI中射线组件在画布对象上,本文不作详细介绍)

Event System组件负责管理输入组件,因此Event System和Standalone Input Module组件附加到同一个对象后才能发挥作用,缺少两者中任意组件会导致事件系统失效。

当 EventSystem 启动时,它会搜索附加到同一 GameObject 的任何 BaseInputModule, 并将其添加到内部列表中。在更新时,每个附加模块都会收到 一个 UpdateModules 调用,模块可以在其中修改内部状态。所有模块更新完成后, 活动模块将执行 Process 调用。 此时可以进行自定义模块处理。

2.2 成员

 API使用示例:判断是否有任意UI对象被点击

void Update(){// Check if the left mouse button was clickedif (Input.GetMouseButtonDown(0)){// Check if the mouse was clicked over a UI elementif (EventSystem.current.IsPointerOverGameObject()){Debug.Log("Clicked on the UI");}}}

2.3  编辑器属性

三.Standalone Input Module组件

如前文所述Standalone Input Module组件用来确定事件类型和触发处理函数

3.1 编辑器属性 

在Inspector视图上,它的前4个属性是用来设置移动、提交和取消按钮的,组件会在这些按钮触发时将事件发送给选中的对象。这里的值要设置为Input Manager(Edit->Project Setting->Input Manager)面板中已有的值。

 3.2 事件响应方式

方式1:实现IXXHandler接口,脚本挂在要点击的目标对象上面

public class onBtnClick : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{public void OnPointerDown(PointerEventData eventData) {print("calling OnPointerClick");}public void OnPointerUp(PointerEventData eventData) {print("calling OnPointerClick");}
}

方式2:使用EventTrigger组件

传送门:UGUI组件EventTrigger用法_ellis1970的博客-CSDN博客

3.3 事件类型

 

相关文章:

UGUI事件系统EventSystem

一. 事件系统概述 Unity的事件系统具有通过鼠标、键盘、游戏控制柄、触摸操作等输入方式,将事件发送给对象的功能。事件系统通过场景中EventSystem对象的组件EventSystem和Standalone Input Module发挥功能。EventSystem对象通常实在创建画布的同时被创建的&#xf…...

redis学习笔记(三)

文章目录 key操作(1)查找键(2)判断键是否存在(3)查看键的的值的数据类型(4)删除键以及键对应的值(5)查看键的有效期(6)设置key的有效期…...

Go语言template模板语法

Go语言模板语法 文章目录 <center> Go语言模板语法连接前后端的符号: {{}}注释管道(pipeline)变量条件判断range 关键字with 关键字比较函数自定义函数嵌套模板模板继承 连接前后端的符号: {{}} 模板语法都包含在{{}}之中,其中{{.}}中的.表示当前对象.在传入一个结构体对…...

Python-OpenCV中的图像处理-物体跟踪

Python-OpenCV中的图像处理-物体跟踪 物体跟踪 物体跟踪 现在我们知道怎样将一幅图像从 BGR 转换到 HSV 了&#xff0c;我们可以利用这一点来提取带有某个特定颜色的物体。在 HSV 颜色空间中要比在 BGR 空间中更容易表示一个特定颜色。在我们的程序中&#xff0c;我们要提取的…...

本地Linux 部署 Dashy 并远程访问教程

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 转载自cpolar极点云文章&#xff1a;本地Linux 部署 Dashy 并远程访问 简介 Dashy 是一个开源的自托管的导航页配置服务&#xff0c;具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你…...

6.2 口令破解攻击

数据参考&#xff1a;CISP官方 目录 口令安全问题口令破解攻击口令破解安全防护口令使用安全管理 一、口令安全问题 什么是口令 身份验证的机制&#xff0c;俗称 “密码"&#xff0c;对应英文单词为 password成本较低&#xff0c;得到广泛应用信息安全中的 “密码”…...

SSL账号申请及配置

摘自个人印象笔记https://app.yinxiang.com/fx/db244155-c858-4d8a-93a8-08071d168dc8ssl申请平台&#xff1a;https://blog.freessl.cn/ ajian51168qq.com … 操作说明&#xff1a;https://blog.freessl.cn/acme-quick-start/ nginx配置&#xff1a; upstream local_tomcat{s…...

JS代码混淆加密有什么用?

JS加密、JS混淆&#xff0c;有这些用&#xff1a; 1、前端JS代码&#xff0c;如果不加密&#xff0c;它人可以随便copy、任意修改。自己写的代码&#xff0c;可以轻易成为别人的成果。 对JS代码混淆加密&#xff0c;则可以防止这种他人随意白嫖的问题&#xff0c;代码是自己辛…...

Oracle的function執行DML操作

Oracle的function並不支持DML操作&#xff0c;但可以使用一段指令&#xff0c;讓這段pl/sql成為獨立的事務。 当使用 PRAGMA AUTONOMOUS_TRANSACTION 时&#xff0c;可以在一个过程或函数的独立代码块中执行数据库操作&#xff0c;而不受外部事务的影响。这意味着内部事务的提交…...

大语言模型:LLM的概念是个啥?

一、说明 大语言模型&#xff08;维基&#xff1a;LLM- large language model&#xff09;是以大尺寸为特征的语言模型。它们的规模是由人工智能加速器实现的&#xff0c;人工智能加速器能够处理大量文本数据&#xff0c;这些数据大部分是从互联网上抓取的。 [1]所构建的人工神…...

21 | 朝阳医院数据分析

朝阳医院2018年销售数据为例,目的是了解朝阳医院在2018年里的销售情况,通过对朝阳区医院的药品销售数据的分析,了解朝阳医院的患者的月均消费次数,月均消费金额、客单价以及消费趋势、需求量前几位的药品等。 import numpy as np from pandas import Series,DataFrame impo…...

二十二、责任链模式

目录 1、使用demo演示责任链模式2、传统方案解决oa系统审批3、传统方案解决oa系统审批存在的问题4、职责链模式基本介绍5、职责链模式原理类图6、职责链模式解决oa系统采购审批7、职责链模式的注意事项和细节8、职责链模式的实际使用场景举例 1、使用demo演示责任链模式 学校o…...

opencv,opengl,osg,vulkan,webgL,opencL,cuda,osg,vtk,ogre的区别

OpenCV OpenCV是一个基于BSD许可&#xff08;开源&#xff09;发行的跨平台计算机视觉和机器学习软件库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高效——由一系列 C 函数和少量 C 类构成&#xff0c;同时提供了Python、Ruby、MATLAB等…...

基于颜色进行轮廓分割,基于opencv和python

1. 阈值调整&#xff0c;交互式的阈值调整&#xff0c;确定上限和下限&#xff1a; import cv2 as cv import numpy as npdef Tcallback(event):H cv.getTrackbarPos(H, show_pic)S cv.getTrackbarPos(S, show_pic)V cv.getTrackbarPos(V, show_pic)H0 cv.getTrackbarPos(…...

TCP重连 - 笔记

1 C++ TCP/IP 关于tcp断线重连的问题 C++ TCP/IP 关于tcp断线重连的问题_c++ 断线重连_Bug&猿柒。的博客-CSDN博客 2 C++基础--完善Socket C/S ,实现客户端,服务器端断开重连 https://www.cnblogs.com/kingdom_0/articles/2571727.html 3 C++实现Tcp通信(考虑客户…...

Qt画波浪球(小费力)

画流动波浪 #ifndef WIDGET3_H #define WIDGET3_H#include <QWidget> #include <QtMath> class widget3 : public QWidget {Q_OBJECT public:explicit widget3(QWidget *parent nullptr);void set_value(int v){valuev;}int get_value(){return value;} protecte…...

监控Kubernetes Node组件的关键指标

所有的 Kubernetes 组件&#xff0c;都提供了 /metrics 接口用来暴露监控数据&#xff0c;Kube-Proxy 也不例外。通过 ss 或者 netstat 命令可以看到 Kube-Proxy 监听的端口&#xff0c;一个是 10249&#xff0c;用来暴露监控指标&#xff0c;一个是 10256 &#xff0c;作为…...

Mysql之优化-主从复制

1、索引优化 &#xff08;1&#xff09;性能下降&#xff0c;执行、等待时间长&#xff1a;数据过多—》分库分表&#xff0c;关联太多&#xff0c;索引未使用&#xff0c;参数调优 &#xff08;2&#xff09;索引失效情况&#xff1a;索引列计算或函数等操作&#xff0c;索引…...

编程之道:构建优雅可维护代码的基石

编程世界犹如一座庞大的建筑群&#xff0c;而代码构建块则是这座建筑的基石。类比于建筑学中的基础构件&#xff0c;代码构建块是软件开发过程中不可或缺的元素。本文将深入探讨代码构建块的概念以及其在编写高质量代码方面的重要性。 什么是代码构建块&#xff1f; 在软件开发…...

十大经典排序算法

目录 前言 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 计数排序 桶排序 基数排序 十大排序之间的比较 总结 前言 学了数据结构之后一直没有进行文字性的总结&#xff0c;现在趁着还有点时间把相关排序的思路和代码实现来写一下。概念的话网上…...

5步打造个性化Windows任务栏:TranslucentTB美化全攻略

5步打造个性化Windows任务栏&#xff1a;TranslucentTB美化全攻略 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB Windows任务栏作为桌面…...

Air8101 多媒体WiFi模组(高清显示+视频采集)

一、模组概述 Air8101是一款集成 2.4G WiFi6 BLE 5.4 的高性能 WiFi SoC&#xff0c;最大支持 200W 像素的静态图像拍照&#xff0c;支持 1多路摄像头接入、H.264 视频编码与推流能力&#xff0c;最高支持1280*720P分辨率LCD显示&#xff0c;外设接口丰富&#xff0c;搭配 Lua…...

AI应用开发入门(0)|为什么你学了很多,却还是不会做AI应用?

这段时间在系统学习 AI 应用开发的过程中&#xff0c;我逐渐有一个比较强烈的感受&#xff1a;相关内容其实并不少&#xff0c;但真正能把“整个路径讲清楚”的并不多。你可能也有类似的经历。✔ 看了很多 Prompt、RAG、Agent 的文章&#xff0c;当时感觉都懂了 ✔ 跟着教程做…...

解锁B站资源:DownKyi视频下载的7个实用维度

解锁B站资源&#xff1a;DownKyi视频下载的7个实用维度 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09;。 …...

OpenClaw+Qwen3.5-9B:学术论文阅读助手开发实录

OpenClawQwen3.5-9B&#xff1a;学术论文阅读助手开发实录 1. 项目背景与需求 作为一名经常需要阅读大量学术论文的研究人员&#xff0c;我长期被两个问题困扰&#xff1a;一是PDF文献的快速消化效率低下&#xff0c;二是跨领域专业术语的理解成本高昂。传统解决方案要么依赖…...

SEO_从零开始,手把手教你制定SEO执行计划

SEO: 从零开始&#xff0c;手把手教你制定SEO执行计划 在当今数字化时代&#xff0c;网站的SEO&#xff08;搜索引擎优化&#xff09;是提高网站流量、吸引目标用户的关键。如果你是一个从零开始的SEO爱好者&#xff0c;可能会觉得这个领域有点复杂。不过&#xff0c;别担心&a…...

保姆级教程:在RK3566 Android 11上搞定ES7202 ADC录音(附驱动修复与PDM协议详解)

RK3566 Android 11平台ES7202 ADC录音全流程实战&#xff1a;从硬件原理到驱动修复 在嵌入式音频开发领域&#xff0c;RK3566凭借其出色的性价比和丰富的接口资源&#xff0c;成为众多智能硬件产品的首选平台。但当遇到ES7202这类仅支持ADC功能的编解码芯片时&#xff0c;如何在…...

npx vs npm run:深度对比与最佳实践指南

npx vs npm run&#xff1a;深度对比与最佳实践指南 【免费下载链接】npx execute npm package binaries (moved) 项目地址: https://gitcode.com/gh_mirrors/np/npx 在Node.js生态系统中&#xff0c;npx和npm run是两个至关重要的命令行工具&#xff0c;它们都能执行np…...

OpenClaw配置备份指南:千问3.5-27B环境快速迁移

OpenClaw配置备份指南&#xff1a;千问3.5-27B环境快速迁移 1. 为什么需要配置备份 上周我的主力开发机突然硬盘故障&#xff0c;不得不更换新设备。当我重新部署OpenClaw时&#xff0c;发现要重新配置模型地址、飞书通道、技能列表等十几项参数&#xff0c;整整花了两小时才…...

介绍 YugabyteDB MCP Server

介绍 YugabyteDB MCP Server Sfurti Sarah June 10, 2025 概述 YugabyteDB MCP Server 是一个全新的、轻量级的、基于 Python 的服务器&#xff0c;它允许像 Anthropic’s Claude 这样的大语言模型&#xff08;Large Language Model, LLM&#xff09;直接与你的 YugabyteDB…...