Skip to content

EUITouchInfo ​

概览 ​

字段值
KindData · 数据 Data
Realmcommon

EUITouchInfo 描述界面节点上一次触摸交互的完整过程,记录触摸开始位置 BeganPosition、触摸移动位置 MovedPosition、触摸结束位置 EndedPosition,以及用于区分不同触点的 TouchID。作者可借助它获取触点在各个阶段的坐标,从而判断拖动距离、滑动方向或多指操作。

适用场景 ​

当界面节点需要响应手指拖动、滑动或长按等交互时,在触摸回调中读取回传的 EUITouchInfo,对比 BeganPosition 与 MovedPosition 计算位移量,并用 TouchID 区分同时存在的多个触点,常用于滚动列表、摇杆或可拖拽面板。

使用要点 ​

该类型不能自行构造,只能在 EUINodeBase 的 OnTouchBegan、OnTouchMoved、OnTouchEnded 事件回调中接收实例。回调触发后按当前阶段读取 BeganPosition、MovedPosition 或 EndedPosition,并结合 TouchID 匹配同一次触摸的多次回调,再据此更新界面表现。

注意事项 ​

禁止使用 EUITouchInfo.New() 或 EUITouchInfo() 直接创建实例,实例只能由触摸事件回调参数或公开 API 的返回值提供。位置类字段均为 Vector2,且只在对应的触摸阶段具有意义,跨阶段读取可能得到不期望的数值。同一次触摸在开始、移动与结束阶段共享相同 TouchID,可据此把多次回调关联为一次完整交互。

代码示例 ​

在触摸回调中读取触点信息 ​

lua
-- @runtime client
local players = game:GetService("Players")
local localPlayer = players.LocalPlayer
if localPlayer == nil then return end
local euiManager = localPlayer.PlayerGui.EuiManager
local rootNode = euiManager:GetRootNode()

rootNode.TouchEnabled = true
rootNode.OnTouchMoved:Once(function(touchInfo, player)
    print("触点:", touchInfo.TouchID)
    print("移动到:", touchInfo.MovedPosition.x, touchInfo.MovedPosition.y)
end)

属性 (4) ​

Name类型默认值说明
BeganPositionVector2-触摸开始位置,类型为 Vector2,用于描述一次触摸交互进入开始阶段时的二维坐标点。该属性属于 EUITouchInfo,是触摸信息中记录起始点位的成员。
MovedPositionVector2-触摸移动位置,类型为 Vector2,用于描述触摸交互处于移动阶段时的二维坐标点。该属性属于 EUITouchInfo,是触摸信息中记录移动点位的成员。
EndedPositionVector2-触摸结束位置,类型为 Vector2,用于描述一次触摸交互进入结束阶段时的二维坐标点。该属性属于 EUITouchInfo,是触摸信息中记录终止点位的成员。
TouchIDInt-触摸点的唯一标识符,用于区分多点触摸。

关联类型 ​