UGUI学习笔记(五)事件系统

本文介绍了Unity中的事件系统,包括EventSystem、InputModule和Raycaster组件的作用。讲解了通过接口和EventTrigger组件实现UGUI事件的两种方法,如拖拽、点击等交互效果,并给出了动态添加事件的代码示例。

一、什么是事件系统

事件系统就是根据输入(鼠标、键盘、触摸等)将消息发送给对象的系统。它的运作主要依靠「Event System」事件系统、「Input Module」输入模块、「Raycaster」射线发射器三个组件协同完成。

  • Event System:主要用来管理当前处于选中状态的游戏对象、当前正在使用的输入模块、射线发射器
  • Input Module:主要用来处理输入、管理事件状态、将事件发送给场景中的对象
  • Raycaster:用于确定鼠标指针位于哪个对象上方。Unity默认提供3中射线发射器,分别是「Graphic Raycaster」用于UI元素、「Physics 2D Raycaster」用于2D物理元素、「Physics Raycaster」用于3D物理元素

二、UGUI实现事件的三种方式

2.1 通过接口实现

Unity提供了许多事件接口,我们只需要在UI元素的脚本中实现其中的接口,并实现其中的方法,即可在特定动作时触发对应方法。
Unity提供的事件接口如下

接口 方法 调用时机
IPointerEnterHandler OnPointerEnter 当指针进入对象时调用
IPointerExitHandler OnPointerExit 当指针退出对象时调用
IPointerDownHandler OnPointerDown 在对象上按下指针时调用
IPointerUpHandler OnPointerUp 松开指针时调用(指针正在点击的游戏对象上)
IPointerClickHandler OnPointerClick 在同一对象上按下再松开指针时调用
IInitializePotentialDragHandler OnInitializePotentialDrag 在找到拖动目标时调用,可用于初始化值
IBeginDragHandler OnBeginDrag 即将开始拖动时在拖动对象上调用
IDragHandler OnDrag 发生拖动时在拖动对象上调用
IEndDragHandler OnEndDrag 拖动完成时在拖动对象上调用
IDropHandler OnDro
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值