版本: Unity 6 (6000.0)
语言English
  • C#

Touch

UnityEngine 中的结构体

/

实现于:UnityEngine.InputLegacyModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

描述手指触摸屏幕状态的结构体。

设备可以跟踪有关触摸屏上触摸的许多不同数据,包括触摸生命周期中的phase、其位置以及触摸是单个接触还是多次点击。此外,设备可以检测帧更新之间触摸的连续性,因此可以在跨帧报告一致的 ID 号,并用于确定特定手指的移动方式。

触摸生命周期描述了任何给定帧中触摸的状态

  • Began - 用户在本帧内用手指触碰了屏幕
  • Stationary - 手指在屏幕上,但用户在本帧内未移动它
  • Moved - 用户在本帧内移动了手指
  • Ended - 用户在本帧内从屏幕上抬起手指
  • Cancelled - 触摸在本帧内被中断

Touch 结构体用于 Unity 存储与单个触摸实例相关的数据,并由 Input.GetTouch 函数返回。每次帧更新都需要对 GetTouch 进行新的调用以从设备获取最新的触摸信息,但可以使用 fingerId 属性在帧之间识别相同的触摸。

注意:在 iOS 设备上,如果应用程序被最小化,则任何保存在内存中的 Touch 信息(例如,当您处于触摸生命周期的中途时)都将丢失。发生这种情况是因为 iOS 调用 ResetTouch() 并从内存中清除所有触摸数据。该触摸的生命周期在那里结束,任何依赖于触摸生命周期后续阶段的功能都不会执行。如果您遇到此问题,应将未执行的功能移动到 MonoBehaviour.OnApplicationFocusMonoBehaviour.OnApplicationPause 中。

其他资源:Input.GetTouchTouchPhase 枚举。

属性

altitudeAngle0 弧度值表示触笔与表面平行,pi/2 表示触笔垂直。
azimuthAngle0 弧度值表示触笔指向设备的 x 轴。
deltaPosition自上次更改以来的位置增量(以像素坐标表示)。
deltaTime自上次记录的 Touch 值更改以来经过的时间量。
fingerId触摸的唯一索引。
maximumPossiblePressure平台上可能的最大压力值。如果 Input.touchPressureSupported 返回 false,则此属性的值将始终为 1.0f。
phase描述触摸的阶段。
position触摸在屏幕空间像素坐标中的位置。
pressure当前施加在触摸上的压力量。1.0f 被认为是平均触摸的压力。如果 Input.touchPressureSupported 返回 false,则此属性的值将始终为 1.0f。
radius触摸半径的估计值。加上 radiusVariance 以获得最大触摸尺寸,减去它以获得最小触摸尺寸。
radiusVariance此值确定触摸半径的准确性。将此值加到半径上以获得最大触摸尺寸,减去它以获得最小触摸尺寸。
rawPosition触摸接触在屏幕空间像素坐标中的第一个位置。
tapCount点击次数。
type一个值,指示触摸是直接、间接(或远程)还是触笔类型。