UnityEngine.EventSystems详解

news/2024/11/15 3:44:41/

介绍

UnityEngine.EventSystems是Unity中的一个核心模块,用于处理用户输入事件和交互。它提供了许多接口和类来处理UI元素,例如按钮、滑动条、文本框等。使用该模块可以方便地实现用户界面的交互和响应。

方法

接口

IPointerClickHandler

当用户点击与物体关联的UI元素时,将调用接口中的方法OnPointerClick(PointerEventData eventData)。

IPointerDownHandler

当用户按下与物体关联的UI元素时,将调用接口中的方法OnPointerDown(PointerEventData eventData)。

IPointerEnterHandler

当用户将鼠标指针移动到与物体关联的UI元素上时,将调用接口中的方法OnPointerEnter(PointerEventData eventData)。

IPointerExitHandler

当用户将鼠标指针移出与物体关联的UI元素时,将调用接口中的方法OnPointerExit(PointerEventData eventData)。

IPointerUpHandler

当用户释放与物体关联的UI元素时,将调用接口中的方法OnPointerUp(PointerEventData eventData)。

IDragHandler当用户拖动与物体关联的UI元素时,将调用接口中的方法OnDrag(PointerEventData eventData)。

IBeginDragHandler

当用户开始拖动与物体关联的UI元素时,将调用接口中的方法OnBeginDrag(PointerEventData eventData)。

IEndDragHandler

当用户结束拖动与物体关联的UI元素时,将调用接口中的方法OnEndDrag(PointerEventData eventData)。

IDropHandler

当用户将物体拖放到与物体关联的UI元素上时,将调用接口中的方法OnDrop(PointerEventData eventData)。

IScrollHandler

当用户使用滚轮滚动与物体关联的UI元素时,将调用接口中的方法OnScroll(PointerEventData eventData)。

PointerEventData

该类包含有关指针事件的信息,例如事件的位置、按下时间等。

EventSystem

该类是整个系统的核心,负责处理用户输入事件并将其分发给正确的UI元素。

BaseRaycaster

该类是射线投射器的基类,用于将指针事件投射到UI元素上。

举例子

示例1:使用IPointerClickHandler接口处理按钮点击事件:

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;public class ButtonClickHandler : MonoBehaviour, IPointerClickHandler
{public void OnPointerClick(PointerEventData eventData){Debug.Log("Button Clicked!");}
}

示例2:

使用IDragHandler接口处理拖动事件:

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;public class DragHandler : MonoBehaviour, IDragHandler
{public void OnDrag(PointerEventData eventData){transform.position = eventData.position;}
}

示例3:

使用EventSystem类检测鼠标是否悬停在UI元素上:

using UnityEngine;
using UnityEngine.EventSystems;public class HoverChecker : MonoBehaviour
{public void Update(){if (EventSystem.current.IsPointerOverGameObject()){Debug.Log("Mouse Over UI");}}
}

这些示例仅演示了UnityEngine.EventSystems模块的一小部分功能,使用该模块可以实现更多的UI交互和响应。


http://www.ppmy.cn/news/74221.html

相关文章

亚马逊产品开发

【一、找产品灵感】 需要不停的去找产品灵感,发起需求,我们到底是要做什么产品?当你看到一个产品,看到一个东西,应该先来考虑这个东西它的尺寸重量,以及在物流方面大概的成本会是多少,你能不能承受?然后…

自动构建之CMake

CMake 链接: 自动构建之MakeFile CMake也是一种用于自动化构建软件项目的工具。Cmake可以自动输出MakeFile文件,并且CMake是一个跨平台的构建系统,对于复杂的、跨平台的项目,CMake可能是一个更好的解决方案。 CMake的脚本文件是在CMakeLis…

DM8_dminit初始化工具介绍及使用

dminit介绍: dminit 是 DM 数据库初始化工具。在安装 DM 的过程中,用户可以选择是否创建初始 数据库。如果当时没有创建,那么在安装完成之后,可以利用创建数据库工具 dminit 来创建。可以利用 dminit 工具提供的各种参数&#xff…

smb配置,详细图文及配置

samba :网络文件共享服务 ​ Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上…

我们为什么还要学习Altium Designer?

Altium Designe(简称“AD”)是电子设计领域中备受推崇的软件工具之一,拥有强大的功能和灵活的设计环境,也是要用最广泛的EDA工具之一,为电子工程师提供了无限可能,但很多工程师学完AD基本操作就转投其他EDA…

elementUI,自定义表头,多层级表头,表头合并,行内容一致的合并行

先上效果: 1.自定义表头: 通过设置 slot"header" 来自定义表头。 slot-scope"scope" 这一行千万不要因为没有再template中使用到scope,vscode报红而删除,这会导致input框不能输入任何内容! &l…

react函数组件常用的几个钩子函数

react框架 react框架包括包括两大类:类组件函数组件。 类组件构成:constructor自定义方法。调用方法通过this.方法名()。constructor(superstate)构造器里面必有super字段。render()方法里面写页面布局。 函数组件构成:各种钩子函数return()方…

Android 系统内的守护进程 - main类服务(7) : sdcard

声明 只要是操作系统,不用说的就是其中肯定会运行着一些很多守护进程(daemon)来完成很多杂乱的工作。通过系统中的init.rc文件也可以看出来,其中每个service中就包含着系统后台服务进程。而这些服务被分为:core类服务(adbd/servicemanager/healthd/lmkd/logd/vold)和mai…