手勢是基於人類雙手的輸入事件。 MRTK 中有兩種裝置會引發手勢輸入事件:
Windows Mixed Reality 裝置如 HoloLens。 這描述了捏合動作 (「空中輕敲」) 以及輕觸並按住的手勢。
欲了解更多 HoloLens 手勢資訊,請參閱 Windows Mixed Reality 手勢文件。
WindowsMixedRealityDeviceManager包裹 Unity XR。WSA。Input.GestureRecognizer 用來從 HoloLens 裝置接收 Unity 的手勢事件。觸控螢幕裝置。
UnityTouchController包裝支援實體觸控螢幕的 Unity Touch 類別 。
這兩個輸入來源都使用 Gesture Settings 設定檔,分別將 Unity 的觸控事件與手勢事件轉換成 MRTK 的 輸入動作。 此設定檔可在 輸入系統設定 檔中找到。
手勢事件
手勢事件是透過實作手勢處理介面來接收的: IMixedRealityGestureHandler 或 IMixedRealityGestureHandler<TYPE> (見 事件處理 者表) 。
請參閱 範例場景 ,了解手勢事件處理器的實作範例。
實作通用版本時, OnGestureCompleted 與 OnGestureUpdated 事件可接收以下類型的類型資料:
-
Vector2- 2D 位置手勢。 透過觸控螢幕製作以告知他們的deltaPosition資訊。 -
Vector3- 3D 位置手勢。 由HoloLens製作,目的是:-
cumulativeDelta操控事件的 -
normalizedOffset導航事件
-
-
Quaternion- 3D 旋轉手勢。 可供自訂輸入來源使用,但目前任何現有輸入來源都無法產生。 -
MixedRealityPose- 結合3D位置/旋轉手勢。 可供自訂輸入來源使用,但目前任何現有輸入來源都無法產生。
事件順序
根據使用者輸入,主要有兩條事件鏈:
「停住」:
- 按住點擊:
- 開始 操控
- 按住點擊超過「按住」開始時間:
- 開始 保持
- 放開敲擊:
- 完全 保留
- 完全 操控
- 按住點擊:
「移動」:
- 按住點擊:
- 開始 操控
- 按住點擊超過「按住」開始時間:
- 開始 保持
- 手移過 NavigationStartThreshold:
- 取消 Hold
- 開始 導航
- 放開敲擊:
- 完全 操控
- 完整 導航
- 按住點擊:
範例場景
HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demo/HandTracking/Scenes) 展示了如何使用指標結果在命中位置生成物件。
GestureTester (Assets/MRTK/Examples/Demo/HandTracking/Script) 腳本是一個透過 GameObjects 視覺化手勢事件的範例實作。 處理程式功能會改變指示物件的顏色,並在場景中以文字物件顯示最後記錄的事件。