一、输入模块组成
BaseInputModule、PointerInputModule、StandaloneInputModule、TouchInputModule组成输入模块
二、触发流程
以TouchInputMoudle输入模块为例子
1、通过OnEnable()函数获取当前对象挂载的EventSystem组件,获取事件系统管理对象eventSystem。【这就要求EventSystem组件和输入模块的组件是挂在同一个对象】
2、通过EventSystem的Update()函数触发TouchInputMoudle的UpdateModule函数,
3、判断当前的输入模块是否是第一个可执行的输入模块,如果不是的话,则ChangeEventModule()替换新的输入模块对象
4、执行输入模块TouchInputMoudle的proecess()函数
5、判断当前是否支持手指点击事件,如果不支持则使用鼠标操作,如果支持则执行ProcessTouchEvents函数
6、ProcessTouchEvents函数中,根据input.touchCount去依次获取Touch对象,使用GetTouchPointerEventData获取当前的点击状态,
设置pointerData数据,调用EventSystem的RaycastAll获取所有的对象,通过排序后找到第一个对象,调用ProcessTouchPress(