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

PointerEventBase<T0>

UnityEngine.UIElements 中的类

/

继承自:UIElements.EventBase_1

/

实现于:UnityEngine.UIElementsModule


实现接口:IPointerEvent

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

描述

所有与指针相关的事件的基础类。

当用户与鼠标、触摸屏或数字笔交互时,会发送指针事件。

默认情况下,指针事件会向下传递到可视元素的层次结构,然后向上冒泡回根元素。

指针事件的循环如下

  • 用户按下鼠标按钮、触摸屏幕或以其他方式导致发送PointerDownEvent
  • 如果用户更改了指针的状态,则会发送PointerMoveEvent。如果指针的多个属性发生更改,则会发送多个 PointerMove 事件。
  • 如果用户取消了循环,则会发送PointerCancelEvent
  • 如果用户没有取消循环,并且释放了最后一个按下的按钮或释放了最后一个触摸,则会发送PointerUpEvent
  • 如果初始PointerDownEventPointerUpEvent发生在同一可视元素上,则会发送ClickEvent

属性

actionKey获取一个布尔值,指示是否按下了特定于平台的操作键。True 表示按下了操作键。False 表示未按下。
altitudeAngle获取触笔相对于表面的角度(以弧度为单位)。
altKey获取一个布尔值,指示是否按下了 Alt 键。True 表示按下了 Alt 键。False 表示未按下。
azimuthAngle获取触笔相对于 x 轴的角度(以弧度为单位)。
button获取一个值,指示哪个鼠标按钮被按下或释放(如果有),以导致此事件:0 是左键,1 是右键,2 是中键。负值表示在此事件期间没有鼠标按钮更改状态。
clickCount获取按钮被按下的次数。
commandKey获取一个布尔值,指示是否按下了 Windows/Cmd 键。True 表示按下了 Windows/Cmd 键。False 表示未按下。
ctrlKey获取一个布尔值,指示是否按下了 Ctrl 键。True 表示按下了 Ctrl 键。False 表示未按下。
currentTarget获取事件的当前目标。
deltaPosition获取上一个鼠标事件期间指针的位置与当前鼠标事件期间指针的位置之间的差值。
deltaTime获取自上次记录的指针值更改以来经过的时间量(以秒为单位)。
isPrimary获取一个布尔值,指示指针是否为主指针。True 表示指针为主指针。False 表示不是。
localPosition获取当前目标坐标系中的指针位置。
modifiers获取指示修饰键(Alt、Ctrl、Shift、Windows/Cmd)是否按下的标志。
penStatus指定笔的状态。例如,笔是否与屏幕或平板电脑接触,笔是否倒置以及按钮是否被按下。在 macOS 上,penStatus 不会反映按钮映射的更改。
pointerId获取发送事件的指针的标识符。
pointerType获取创建事件的指针类型。
position获取屏幕或世界坐标系中的指针位置。
pressedButtons获取一个位掩码,描述当前按下的按钮。
pressure获取触摸时当前施加的压力量。
radius获取触摸半径的估计值。
radiusVariance获取触摸半径的精度。
shiftKey获取一个布尔值,指示是否按下了 Shift 键。True 表示按下了 Shift 键。False 表示未按下。
tangentialPressure获取施加到触笔上其他压力敏感控制的压力。
tilt分别指定触笔相对于 X 轴和 Y 轴的角度(以弧度为单位)。
twist获取触笔围绕其轴的旋转(以弧度为单位)。

受保护的方法

Init将事件成员重置为其初始值。

静态方法

GetPooled从事件池中获取一个事件,并使用给定值对其进行初始化。使用此函数而不是创建新事件。使用此方法获得的事件需要释放回池中。您可以使用 Dispose() 来释放它们。

继承的成员

属性

bubbles返回此事件类型是否在事件传播路径中冒泡。
currentTarget事件的当前目标。这是事件传播路径中的 VisualElement,当前正在为其执行事件处理程序。
dispatch指示事件是否正在分派到可视元素。在事件正在分派期间,无法重新分派事件。如果您需要递归地分派事件,建议您使用事件的副本。
imguiEvent此事件源头的 IMGUIEvent。源可以为 null,因为并非所有事件都是由 IMGUI 生成的。
isImmediatePropagationStopped指示是否为此事件调用了 StopImmediatePropagation()。
isPropagationStopped是否为此事件调用了 StopPropagation()。
originalMousePositionIMGUI 事件的原始鼠标位置,在将其转换为当前目标局部坐标之前。
pooled事件是否从事件池中分配。
propagationPhase此事件的当前传播阶段。
target接收此事件的目标可视元素。与 currentTarget 不同,此目标在事件沿传播路径发送到其他元素时不会更改。
timestamp创建事件的时间(以毫秒为单位)。
tricklesDown返回此事件是否在 TrickleDown 阶段向下发送到事件传播路径。
eventTypeId检索此事件实例的类型 ID。

公共方法

StopImmediatePropagation立即停止事件的传播。事件不会发送到传播路径中的其他元素。此方法可防止其他事件处理程序在当前目标上执行。
StopPropagation停止传播此事件。事件不会发送到传播路径中的其他元素。此方法不会阻止其他事件处理程序在当前目标上执行。如果在 TrickleDown 传播阶段调用此方法,它将阻止处理默认操作,例如元素由于 PointerDownEvent 而获得焦点。
DisposeIDispose 的实现。

受保护的方法

PostDispatch允许子类在事件分派后执行自定义逻辑。
PreDispatch允许子类在事件分派前执行自定义逻辑。

静态方法

RegisterEventType将事件类注册到事件类型系统。
GetPooled从事件池中获取一个事件。使用此函数而不是创建新事件。使用此方法获得的事件需要释放回池中。您可以使用 Dispose() 来释放它们。
TypeId检索此事件实例的类型 ID。