UGUI事件系统精要(一)-事件处理流程

EventSystem作为控制类操作BaseInput,BaseRaycaster

BaseInput 相当于一个unity Input 和 UGUI BaseInputModule 的媒介类,BaseInputModule只跟BaseInput交互。
StandaloneInputModule->PointerInputModule,TouchInputModule->PointerInputModule,PointerInputModule->BaseInputModule
EventSystem 调用 BaseInputModule.Process() 处理来自unity的所有功能

RaycasterManager静态类管理所有的GraphicRaycaster,BaseRaycaster 激活是注册自己到RaycasterManager
GraphicRaycaster -> BaseRaycaster,Physics2DRaycaster->PhysicsRaycaster->BaseRaycaster

BaseRaycaster的关键,Raycast方法获得当前节点下Canvas的所有Graphic,并且进行检测触发排序(最终是Graphic.Raycast())。
最总EventSystem.RaycastComparer方法比较,排序获得第一个graphic作为pointerCurrentRaycast。