SpatialGestureRecognizer 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
解释用户从手部、运动控制器和系统语音命令到表面空间手势事件的交互,用户使用其凝视或运动控制器的指向射线来定位这些事件。
public ref class SpatialGestureRecognizer sealed
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Input.Spatial.ISpatialGestureRecognizerFactory, 131072, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 131072)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SpatialGestureRecognizer final
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Input.Spatial.ISpatialGestureRecognizerFactory), 131072, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 131072)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class SpatialGestureRecognizer
function SpatialGestureRecognizer(settings)
Public NotInheritable Class SpatialGestureRecognizer
- 继承
- 属性
Windows 要求
设备系列 |
Windows 10 (在 10.0.10586.0 - for Xbox, see UWP features that aren't yet supported on Xbox 中引入)
|
API contract |
Windows.Foundation.UniversalApiContract (在 v2.0 中引入)
|
注解
空间手势是 holoLens 等混合现实头戴显示设备的关键输入形式。 通过将交互从 SpatialInteractionManager 路由到全息影像的 SpatialGestureRecognizer,应用可以跨手部、语音和运动控制器统一检测点击、按住、操作和导航事件。
请注意,不会检测到来自游戏板、键盘或鼠标的输入的空间手势。
SpatialGestureRecognizer 仅执行你请求的手势集之间的最小消除歧义。 例如,如果只请求点击,那么只要用户愿意,他们可按住手指,然后仍然会出现点击。 如果你同时请求点击和按住,在按住手指大约一秒钟后,手势将提升为按住,并且不再发生点击。
若要使用 SpatialGestureRecognizer,请处理 SpatialInteractionManager 的 InteractionDetected 事件并抓取其中公开的 SpatialPointerPose 。 使用此姿势中的用户视线与用户周围环境中的全息影像和表面网格相交,以确定用户打算与之交互的内容。 然后,使用 Event 参数中的 SpatialInteraction 方法将其路由到目标全息影像的 SpatialGestureRecognizer。 这会根据创建时在该识别器上设置 的 SpatialGestureSettings 或 TrySetGestureSettings 开始解释该交互。
面向空间交互(例如手势、运动控制器按下或语音交互)时,应用应根据交互的 SpatialInteractionSource 的性质从交互的 SpatialPointerPose 中选择可用的指向射线:
- 如果交互源不支持指向 (IsPointingSupported 为 false) ,则应用应基于用户的凝视(可通过 Head 属性获得)为目标。
- 如果交互源支持指向 (IsPointingSupported 为 true) ,则应用可能会改为根据源的指针姿势(可通过 TryGetInteractionSourcePose 方法获取)作为目标。
然后,应用应将所选指向射线与其自己的全息影像或空间映射网格相交,以呈现光标并确定用户打算与之交互的内容。
对于使用凝视和提交输入模型的应用程序,特别是在 HoloLens (第一代) 上,SpatialGestureRecognizer 可用于启用基于“select”事件构建的复合手势。 通过将交互从 SpatialInteractionManager 路由到全息影像的 SpatialGestureRecognizer,应用可以跨受、语义和空间输入设备统一检测点击、按住、操作和导航事件,而无需手动处理按下和释放。
构造函数
SpatialGestureRecognizer(SpatialGestureSettings) |
使用指定的手势设置初始化新的 SpatialGestureRecognizer 。 |
属性
GestureSettings |
获取此识别器当前的 SpatialGestureSettings 。 |
方法
CancelPendingGestures() |
取消所有正在进行的手势并放弃任何捕获的交互。 |
CaptureInteraction(SpatialInteraction) |
跟踪作为指定交互的一部分发生的所有输入事件。 |
TrySetGestureSettings(SpatialGestureSettings) |
尝试更改此识别器笔势设置。 |
事件
HoldCanceled |
取消 保留 手势时发生。 |
HoldCompleted |
在保持手势完成时发生。 |
HoldStarted |
当交互变为 保持 手势时发生。 |
ManipulationCanceled |
取消 操作 手势时发生。 |
ManipulationCompleted |
操作 手势完成 时发生。 |
ManipulationStarted |
当交互成为 操作 手势时发生。 |
ManipulationUpdated |
当由于手部移动而更新 操作 手势时发生。 |
NavigationCanceled |
取消 导航 手势时发生。 |
NavigationCompleted |
导航 手势完成 时发生。 |
NavigationStarted |
当交互成为 导航 手势时发生。 |
NavigationUpdated |
当由于手部或运动控制器移动而更新 导航 手势时发生。 |
RecognitionEnded |
在手势识别结束时发生,由于手势完成或取消, (这是最后一个触发) 的事件。 |
RecognitionStarted |
当手势识别开始 (这是触发) 的第一个事件时发生。 |
Tapped |
在识别点击或双拍手势时发生。 |