UGUI中的 事件派发机制:
在使用UGUI的时候 创建Canvas会自动 创建一个EventSystem 这个EventSystem就是个监听器(监测器)它会在Update里检查 InputMoudle,判断是否 活跃状态,是否应该激活它,不是就从List中移除掉,如果是当前的Moudel,,并且需要改变, 就调用Process派发函数,
这里的BaseInputMoudle 和 GraphicRaycaster是 用来采集用户行为的,当用户 操作时,会检查位置方向, 赋点触信息,对其执行光线转换 再经过一系列的判断
相当于 是 采集信息器。
采集后 ,InputMoudle会去派发委托事件,给响应器,各种handle 处理,
再通过ExceuteEvents,来进行执行其响应逻辑委托事件,最后派发到button上,Invoke 会执行Onclick的委托。
入口在EventSystem下的Update 函数,
in右边的
BaseInputMoudle的处理 函数, 处理滑入和滑出,
下面是 GraphicRaycaster 里的投射 方法。具体就是
利用 屏幕上 鼠标点击的位置 ,Camera.ScreenPointToRay 屏幕位置转射线