UGUI提高<三> EventSystems事件系统
2016-11-17 18:50
399 查看
原创
首先,要监听UGUI的事件,场景里必须有EventSystem物体,UGUI已经自动创建了。其次,UI上的脚本要引用using UnityEngine.EventSystems; 实现具体事件的接口。这些接口还蛮多的。
注: EventTrigger组件也能实现回调,但是麻烦的多,没有直接用接口好用。具体怎么可以去网上找一下,要写七八句代码。
事件接口:
IPointerEnterHandler OnPointerEnter 当鼠标进入
IPointerExitHandler OnPointerExit 当鼠标离开
IPointerDownHandler OnPointerDown 当鼠标按下
IPointerUpHandler OnPointerUp 当鼠标抬起
IPointerClickHandler OnPointerClick 当鼠标按下并抬起
IBeginDragHandler OnBeginDrag 当开始拖拽
IDragHandler OnDrag 当拖拽中
IEndDragHandler OnEndDrag 当结束拖拽
IDropHandler OnDrop 当放下
IScrollHandler OnScroll 当滚动
IUpdateSelectedHandler OnUpdateSelected 当每个选择对象
ISelectHandler OnSelect 当对象变为选定
IDeselectHandler OnDeselect 当对象取消选的
IMoveHandler OnMove 当移动时
ISubmitHandler OnSubmit 当提交按钮被按下
ICancelHandler OnCancel 当取消按钮被按下
Event System 组件:
First Selected —— 开始时默认选择的第一个UI
Send Navigation Events —— 是否发送UI导航事件 (就是用键盘上下左右来选择UI,一般不开启)
Drag Threshold —— 拖拽敏感度 (越小越敏感)
首先,要监听UGUI的事件,场景里必须有EventSystem物体,UGUI已经自动创建了。其次,UI上的脚本要引用using UnityEngine.EventSystems; 实现具体事件的接口。这些接口还蛮多的。
using UnityEngine; using System.Collections; using UnityEngine.UI; using UnityEngine.EventSystems; public class NewBehaviourScript : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler, IPointerDownHandler { public void OnBeginDrag(PointerEventData eventData) { Debug.Log("开始拖拽"); } public void OnDrag(PointerEventData eventData) { Debug.Log("拖拽中"); transform.position = Input.mousePosition; } public void OnEndDrag(PointerEventData eventData) { Debug.Log("结束拖拽"); } public void OnPointerDown(PointerEventData eventData) { Debug.Log("连击次数" + eventData.clickCount); Debug.Log("鼠标位置" + eventData.position); } }
注: EventTrigger组件也能实现回调,但是麻烦的多,没有直接用接口好用。具体怎么可以去网上找一下,要写七八句代码。
事件接口:
IPointerEnterHandler OnPointerEnter 当鼠标进入
IPointerExitHandler OnPointerExit 当鼠标离开
IPointerDownHandler OnPointerDown 当鼠标按下
IPointerUpHandler OnPointerUp 当鼠标抬起
IPointerClickHandler OnPointerClick 当鼠标按下并抬起
IBeginDragHandler OnBeginDrag 当开始拖拽
IDragHandler OnDrag 当拖拽中
IEndDragHandler OnEndDrag 当结束拖拽
IDropHandler OnDrop 当放下
IScrollHandler OnScroll 当滚动
IUpdateSelectedHandler OnUpdateSelected 当每个选择对象
ISelectHandler OnSelect 当对象变为选定
IDeselectHandler OnDeselect 当对象取消选的
IMoveHandler OnMove 当移动时
ISubmitHandler OnSubmit 当提交按钮被按下
ICancelHandler OnCancel 当取消按钮被按下
Event System 组件:
First Selected —— 开始时默认选择的第一个UI
Send Navigation Events —— 是否发送UI导航事件 (就是用键盘上下左右来选择UI,一般不开启)
Drag Threshold —— 拖拽敏感度 (越小越敏感)
相关文章推荐
- 基于Unity3D(UGUI)的背包系统<三>
- 工作总结日志<三> 数控系统RTLinux内核上几个系统类型和函数在RTAI内核上的对应
- <Unity UGUI> 在Unity5 的UGUI系统上实现图片的遮罩
- vueJs(2.x)+router+vuex简易博客系统<三>
- 面向对象系统设计与分析专题<4>__业务事件分析
- JavaScript系统学习之二 <事件,对象>
- UGUI提高<七> 循环滚动插件和内嵌网页插件
- Mac之OS系统下搭建JavaEE环境 <三> 之Eclipse 与 IntelliJ IDEA 的安装配置
- UGUI提高<四> 异步加载场景进度条
- UGUI提高<五> UGUI实现场景小地图
- 基于Unity3D(UGUI)的背包系统<二>
- UGUI提高<二> LayoutGroup布局参数详解
- STM32系统中应用的动态加载可行性研究过程<三>
- 基于Unity3D(UGUI)的背包系统<四>完结篇
- Ulua热更新提高 <三> 网络通信和ProtocolBuffer
- linux inotify 监控文件系统事件(incron,基于事件驱动的cron-<path> <mask> <command>)
- listvew<三> 实现item内部控件的点击事件
- UGUI提高<一> Scroll View参数详解
- watch File System Events(文件系统改变事件监控) < 一 >
- <<备案网站管理系统>>是JSP做的