文章目录
1.前言
本文针对UGUI事件系统进行总体陈述,可以有一个宏观上的理解。事件系统保罗各种输入、EventSystem以及各种InputModule,其实不只是UGUI的事件系统,是整个Unity的事件系统。本文只是综述,只涉及各个模块之间的关系与各个模块的功能,每个模块的具体分析在后续详解,源码下载链接。
2.事件系统简图
事件系统的关系简图如下:
2.1 基本流程
在整个事件系统中EventSystem是管理者,维护着所有所有去执行事件(如点击、拖动等)的模块即各种InputModules。整个事件系统的输入是EventData,而最主要的是PointerEventData,它除了存储了当前帧下鼠标坐标和点击状态外还存储了此时鼠标下对应的游戏物体以及上一帧的游戏物体,而由于移动设备的特殊性则会所差异,后续会详细说明。有了EventData,InputModule根据数据进行判断具体执行什么事件,比如是否执行click事件或者拖动事件等。InputModule判断出需要具体执行何种事件后交由ExecuteEvent去执行具体事件。
3.事件系统详图
下图为整个事件系统的详细流程: