UGUI源码深度解析(一)事件系统

本文深入探讨UGUI事件系统的各个关键类,包括EventInterFace、EventSystems、EventTrigger、ExecuteEvents等,详细阐述它们的功能和交互过程,如事件检测、射线检测以及不同输入模块的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍事件系统各个类的主要功能

 

  1. EventInterFace 定义所有事件的接口 点击 拖拽
  2. EventSystems 事件的主程序 有Update,Update中 是各个输入Module的 调用检测,每个Module中也是通过EventSystems的Update没帧进行点击(输入)检测、 射线检测调用EventSystems RaycastAll, 遍历各个模块的module(Canvas),( Canvas继承自GraphicRaycst)。调用module的racast方法GraphicRaycst对象中的 racast方法,这里也创建了一个射线ray是用于检测ui与2dui(2dsprite)3d物体(cube等)的检测筛选 ,然后得到遮挡的距离 (后期用于比较与 ui碰撞的距离),接下来调用Raycast方法 检测canvas下所有的子graphic物体,通过RectTransformUtility.RectangleContainsScreenPoint()方法判断点击的点是否在 物体的矩形框RectTransform内,然后调用每个 graphic物体自己的Raycast 方法 里面可能做一些自己的检测() 例如 点击不透明物体 alpha为0的地方不做检测)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值