lyh916

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  201 随笔 :: 0 文章 :: 12 评论 :: 21万 阅读

参考链接:

https://zhuanlan.zhihu.com/p/74520501

https://blog.csdn.net/ecidevilin/article/details/52510373

 

点击流程分3个部分:

一.封装点击信息

将Input.GetTouch返回的Touch结构体,包装成PointerEventData

 

二.找到点击对象

UI的点击判断,主要是根据点是否在UI的矩形范围内,而并非使用物理射线

将点击到的第一个对象赋予给pointerData.pointerCurrentRaycast

 

三.传递点击信息

ExecuteEvents.GetEventHandler<IPointerClickHandler>(currentOverGo):从currentOverGo开始往上找,找到一个实现了IPointerClickHandler接口的go

ExecuteEvents.Execute(pointerEvent.pointerPress, pointerEvent, ExecuteEvents.pointerClickHandler):将点击信息传递到go上的接口

同时也可以看到,要按下和抬起时是同一个go,才会响应点击事件

 

例子:

点击按钮上的文字,首先通过点击判断确定Text这个go,然后从Text往上找,找到Button,最后触发点击事件

posted on   艰苦奋斗中  阅读(229)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示