欢迎光临
我们一直在努力

【Unity UGUI源码深度解析】 19|输入模块源码解析:鼠标、触摸与导航如何转换为UI事件

《UGUI源码深度解析》第 19 篇 · 界面小组工作日志 基准:Unity 2022.3.62f2c1 / 本地 UGUI 1.0.0,跟踪传统 StandaloneInputModule。 人物与项目情节为虚构;源码机制以本地实现为准。

在这里插入图片描述

一、按下背包格,抬起时已经在外面

阿澈准备实现拖动装备,却遇到一个设计问题:“鼠标按过格子,算不算点击?如果拖出去再松手呢?”

Button 不是靠自己每帧读取鼠标来回答。输入模块保留按下期间的状态,抬起时再决定发 PointerClick、Drop 或 EndDrag。

我们先把 PointerEventData 打开。它不是一张只记录坐标的便条,而是一次指针交互的状态容器。

二、一个指针,几种不同的目标

PointerInputModule 用指针标识管理 PointerEventData,复用数据以保持跨帧状态。鼠标按键和触摸有不同标识与处理路径,不能把所有输入都硬编码成鼠标左键那份数据。

pointerCurrentRaycast 是当前命中结果;rawPointerPress 保存原始按下命中对象;pointerPress 是收到按下的处理对象;本版本还独立保存 pointerClick;pointerDrag 则指向拖拽处理者。

“这些通常不

赞(0)
未经允许不得转载:171主机测评 » 【Unity UGUI源码深度解析】 19|输入模块源码解析:鼠标、触摸与导航如何转换为UI事件
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址