手勢 - MRTK2

手勢是以人類手為基礎的輸入事件。 MRTK 中有兩種類型的裝置會引發手勢輸入事件:

這兩個輸入來源都使用 手勢設定 設定檔,分別將 Unity 的 Touch 和 Gesture 事件轉譯為 MRTK 的 輸入動作。 您可以在 [輸入系統設定 ] 設定檔下找到此設定檔。

手勢設定檔

手勢事件

藉由實作其中一個手勢處理常式介面來接收手勢事件: IMixedRealityGestureHandlerIMixedRealityGestureHandler<TYPE> (請參閱 事件處理常式 的資料表) 。

如需手勢事件處理常式的實作範例,請參閱 範例場景

實作泛型版本時, OnGestureCompletedOnGestureUpdated 事件可以接收下列類型的具型別資料:

  • Vector2 - 2D 位置手勢。 由觸控式螢幕產生,以通知其 deltaPosition
  • Vector3 - 3D 位置手勢。 由 HoloLens 產生,以通知:
  • Quaternion - 3D 旋轉手勢。 可供自訂輸入來源使用,但目前無法由任何現有輸入來源產生。
  • MixedRealityPose - 結合 3D 位置/旋轉手勢。 可供自訂輸入來源使用,但目前無法由任何現有輸入來源產生。

事件的順序

視使用者輸入而定,有兩個主要的事件鏈結:

範例場景

HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) 場景示範如何使用指標 Result 在點擊位置繁衍物件。

GestureTester (Assets/MRTK/Examples/Demos/HandTracking/Script) 腳本是一個範例實作,可透過 GameObjects 將手勢事件視覺化。 處理常式函式會變更指標物件的色彩,並在場景中的文字物件中顯示最後一個錄製的事件。