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 引進)
|
備註
空間手勢是Mixed Reality頭戴式裝置的輸入關鍵形式,例如 HoloLens。 藉由將 空間InteractionManager 的互動路由傳送至全像投影的 SpatialGestureRecognizer,應用程式可以跨手部、語音和動作控制器一致地偵測 Tap、Hold、Manipulation 和 Navigation 事件。
請注意,不會偵測到來自遊戲台、鍵盤或滑鼠輸入的空間手勢。
SpatialGestureRecognizer 只會在您要求的一組手勢之間執行最小的混淆。 例如,如果您只要求 Tap,只要使用者喜歡,使用者就可以按住手指,而且點選仍會發生。 如果您同時要求點選和按住,大約在按住手指一秒之後,手勢會升階為 [按住],而點選將不再發生。
若要使用 SpatialGestureRecognizer,請處理 SpatialInteractionManager 的 InteractionDetected 事件,並抓取該處公開的 SpatialPointerPose 。 使用來自此姿勢的使用者注視光線,與使用者周圍全像投影和表面網格交集,以判斷使用者想要與之互動的內容。 然後,使用其 CaptureInteraction 方法,將事件引數中的 SpatialInteraction 路由傳送至目標全像投影的 SpatialGestureRecognizer。 這會根據在建立時或TrySetGestureSettings上設定的SpatialGestureSettings開始解譯該互動。
以空間互動為目標時,例如手勢、動作控制器按下或語音互動,應用程式應該根據互動 的 SpatialInteractionSource本質,選擇可從互動的 SpatialPointerPose 取得的指向光線:
- 如果互動來源不支援指向 (IsPointingSupported 為 false) ,則應用程式應該以使用者注視為基礎,可透過 Head 屬性取得。
- 如果互動來源支援指向 isPointingSupported (isPointingSupported 為 true) ,應用程式可能會改為根據來源的指標姿勢作為目標,並透過 TryGetInteractionSourcePose 方法取得。
然後,應用程式應該將所選的指向光線與其自己的全像投影或空間對應網格交集,以轉譯資料指標,並判斷使用者想要與其互動的內容。
對於使用注視和認可輸入模型的應用程式,特別是在 HoloLens (第一代) 上,SpatialGestureRecognizer 可用來啟用建置於 'select' 事件之上的複合手勢。 藉由將空間InteractionManager 的互動路由傳送至全像投影的 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 |
在辨識 Tap 或 DoubleTap 手勢時發生。 |