处理指针输入时,可能希望控件捕获指针。当视觉元素捕获指针时,无论指针是否悬停在视觉元素上,Unity 都会将与指针关联的所有事件发送到视觉元素。例如,如果您创建了一个接收拖动事件并捕获指针的控件,则无论指针位置如何,该控件都会接收拖动事件。
Manipulator 类提供了一种捕获指针的便捷方法。Manipulator 类是所有操控器的基类。操控器是一个处理指针输入并将事件发送到视觉元素的类。例如,Clickable 类是一个操控器,当用户单击视觉元素时发送PointerDownEvent。在 PointerDownEvent 之后,某些元素必须捕获指针位置,以确保能接收所有后续的指针事件,即使光标不再悬停在该元素上。例如,在点击按钮、滑动条或滚动条时就属于这种情况。
要捕获指针,请调用 PointerCaptureHelper.CapturePointer。
要释放指针,请调用 PointerCaptureHelper.ReleasePointer。如果在调用 CapturePointer() 时已经有另一个元素正在捕获鼠标,该元素将收到 PointerCaptureOutEvent 并失去此捕获。
在应用程序中,任何时候都只能有一个元素具有捕获。当元素具有捕获时,该元素便是除鼠标滚轮事件之外的所有后续指针事件的目标。这仅适用于尚未设置目标并依赖分发过程来确定目标的指针事件。
更多信息,请参阅捕获事件。