UGUI事件系统——事件接口
所有的事件接口均继承自 IEventSystemHandler
IPointerEnterHandler 指针进入事件
IPointerExitHandler 指针退出事件
——利用指针进入、退出事件,可以完成ToolTip功能
IPointerDownHandler 指针按下事件:在可视元素矩形区域内按下时响应
IPointerUpHandler 指针抬起事件:在可视元素矩形区域内按下后,在任意地方抬起时响应
IPointerClickHandler 指针点击事件:在可视元素矩形区域内按下后,且在同一可视元素矩形区域内抬起时响应
——有按下,必定有抬起;有按下,未必有点击
IInitializePotentialDragHandler 初始化潜在的拖动事件:与IPointerDownHandler触发条件基本相同
IBeginDragHandler 拖动开始事件
IDragHandler 拖动中事件
IEndDragHandler 拖动结束事件
IDropHandler 接收拖动事件
IScrollHandler 滚动事件
ISelectHandler 选择事件:选择(点击)时调用EventSystem.current.SetSelectedGameObject(gameObject)选中,随后触发OnSelect(...)方法
IDeselectHandler 取消选择事件:选中另一gameObject后,原来选中的自动取消
IUpdateSelectedHandler 选中物体每帧触发事件
IMoveHandler 移动事件(上下左右):与InputManager里的Horizontal和Vertical按键相对应。=> Input.GetAxisRaw()
ISubmitHandler 提交事件:按下InputManager里的submit对应的按键(一般是Enter)。=> Input.GetButtonDown()
ICancelHandler 取消事件:按下InputManager里的cancel对应的按键(Esc)。=> Input.GetButtonDown()
——移动、提交、取消操作,必须先选中(OnSelect)才能触发
所有被继承的事件接口,需要实现其方法,参数一般是EventData(BaseEventData/PointerEventData),利用这些参数可以完成相应操作。
- using UnityEngine;
- using UnityEngine.EventSystems;
- public class EventTest : MonoBehaviour,
- IPointerClickHandler,
- IPointerEnterHandler,
- IPointerExitHandler,
- IPointerDownHandler,
- IPointerUpHandler,
- IBeginDragHandler,
- IDragHandler,
- IInitializePotentialDragHandler,
- IEndDragHandler,
- IDropHandler,
- IUpdateSelectedHandler,
- ISelectHandler,
- IDeselectHandler,
- IScrollHandler,
- IMoveHandler,
- ISubmitHandler,
- ICancelHandler
- {
- #region 鼠标指针类
- //鼠标进入时响应
- public void OnPointerEnter(PointerEventData eventData)
- {
- Debug.Log("OnPointerEnter");
- }
- //鼠标离开时响应
- public void OnPointerExit(PointerEventData eventData)
- {
- Debug.Log("OnPointerExit");
- }
- //鼠标按下时响应
- public void OnPointerDown(PointerEventData eventData)
- {
- Debug.Log("OnPointerDown");
- }
- //鼠标释放时响应
- public void OnPointerUp(PointerEventData eventData)
- {
- Debug.Log("OnPointerUp");
- }
- //鼠标点击时响应
- public void OnPointerClick(PointerEventData eventData)
- {
- Debug.Log("OnPointerClick");
- }
- #endregion
- #region 拖拽类
- //初始化拖拽
- public void OnInitializePotentialDrag(PointerEventData eventData)
- {
- Debug.Log("OnInitializePotentialDrag");
- }
- //开始拖拽
- public void OnBeginDrag(PointerEventData eventData)
- {
- Debug.Log("OnBeginDrag");
- }
- //拖拽中
- public void OnDrag(PointerEventData eventData)
- {
- Debug.Log("OnDrag");
- }
- //拖拽结束
- public void OnEndDrag(PointerEventData eventData)
- {
- Debug.Log("OnEndDrag");
- }
- //拖拽释放
- public void OnDrop(PointerEventData eventData)
- {
- Debug.Log("OnDrop");
- }
- #endregion
- #region 点选类
- //当物体被选中时每帧触发
- public void OnUpdateSelected(BaseEventData eventData)
- {
- Debug.Log("OnUpdateSelected");
- }
- //选中物体
- public void OnSelect(BaseEventData eventData)
- {
- Debug.Log("OnSelect");
- }
- //未选中物体
- public void OnDeselect(BaseEventData eventData)
- {
- Debug.Log("OnDeselect");
- }
- #endregion
- #region 输入类
- //鼠标中轮滚动
- public void OnScroll(PointerEventData eventData)
- {
- Debug.Log("OnScroll");
- }
- //移动物体
- public void OnMove(AxisEventData eventData)
- {
- Debug.Log("OnMove");
- }
- //提交
- public void OnSubmit(BaseEventData eventData)
- {
- Debug.Log("OnSubmit");
- }
- //取消
- public void OnCancel(BaseEventData eventData)
- {
- Debug.Log("OnCancel");
- }
- #endregion
- }
UGUI事件系统——事件接口相关推荐
- c调用按钮点击事件_Unity3d---对UI事件接口的一些测试和机制(坑)的总结
开文来记录一下自己摸索到的UI事件接口的一些运作机制(坑),就不赘述具体怎么使用这些事件接口了(不做教学...),本文主要是记自己发现的一些坑点 主要针对于在复杂的UI嵌套关系下,鼠标指针和拖拽操作的 ...
- 客户端回传事件接口IPostBackEventHandler
客户端回传事件接口IPostBackEventHandler 要使控件捕获回发事件,控件必须实现System.Web.UI.IPostBackEventHandler 接口.此接口约定允许控件在服务器 ...
- COMSOL中事件接口介绍二,隐式事件
文章目录 前言 一.模型介绍 二.建模流程 1.温度监测参数定义 1.1 平均值设置 1.2 变量设置 2.事件接口设置 2.1 设置离散状态 2.2 设置指示器状态 2.3 设置隐式事件 3.传热模 ...
- 简述事件接口与事件适配器的联系与区别_通过Redis学习事件驱动设计
01 为什么我说C程序员都要阅读Redis源码 主要原因就是『简洁』.如果你用源码编译过Redis,你会发现十分轻快,一步到位.其他语言的开发者可能不会了解这种痛,作为C/C++程序员,如果你源码编译 ...
- jQuery-1.9.1源码分析系列(十) 事件系统——事件体系结构
又是一个重磅功能点. 在分析源码之前分析一下体系结构,有助于源码理解.实际上在jQuery出现之前,Dean Edwards的跨浏览器AddEvent()设计做的已经比较优秀了:而且jQuery事件系 ...
- 微信小程序监听实时地理位置变化事件接口申请
监听实时地理位置变化事件,需结合 wx.startLocationUpdateBackground.wx.startLocationUpdate使用. 申请开通 暂只针对国内主体如下类目的小程序开放, ...
- 简述事件接口与事件适配器的联系与区别_设计模式——适配器模式
适配器模式 适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper).适配器模式既可以作为类结构型模式,也 ...
- jQuery-1.9.1源码分析系列(十) 事件系统——事件绑定
事件绑定的方式有很多种.使用了jQuery那么原来那种绑定方式(elem.click = function(){...})就不推荐了,原因? 最主要的一个原因是elem.click = fn这种方式只 ...
- jQuery-1.9.1源码分析系列(十) 事件系统——事件包装
首先需要明白,浏览器的原生事件是只读的,限制了jQuery对他的操作.举个简单的例子就能明白为什么jQuery非要构造一个新的事件对象. 在委托处理中,a节点委托b节点在a被click的时候执行fn函 ...
- UGUI IPointerUpHandler事件失灵
在仿做一个杀戮尖塔的战斗卡牌界面,做卡牌的时候发现IPointerUpHandler事件失灵,无法检测到鼠标抬起.. 后面加入IPointerDownHandler事件后,就能正常使用了..
最新文章
- 样式集(六)仿微信通讯录样式
- 7小时44分最佳,睡多睡少都不好,养成习惯也没用
- 在ubuntu下安显卡驱动
- 关于互斥锁,条件变量的内核源码解析
- real time linux pdf,【整理】ubuntu real time Linux
- C++设计模式-面向对象程序设计要点以及封装性特点
- JavaEE各种Javadoc的下载
- 关于地理国情监测(国家测绘局、地理信息系统协会改名及国家级地理信息产业园奠基的风生水起)...
- SQLServerAgent 当前未运行,因此无法将此操作通知它。
- 关于JavaScript的词法作用域及变量提升的个人理解
- SoapUI安装教程,亲测可用
- 结晶器或者连铸--流场-温度场-凝固--夹杂物计算说明
- 吃鸡服务器维护公告10月19日,绝地求生10月30日维护公告更新内容 今天吃鸡几点开服时间...
- 中国医科大学网络教育学院试卷计算机,中国医科大学网络教育学院补考试卷
- 达观数据智能财务审核机器人,助力央企财务共享中心智能转型
- Excel整行数据自动标颜色
- 小米air2se耳机只有一边有声音怎么办_小米推出与Air2系列的第三款Air2 SE拼性价比意义何在?...
- MOS驱动自举电容和限流电阻的选取
- 函数打桩原理_难重现问题定位“函数打桩”
- 学习数据分析、数据挖掘、大数据ETL工程师到什么程度可以找工作?