共用方式為


手勢 - MRTK2

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

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

手勢配置檔

手勢事件

手勢事件是藉由實作其中一個手勢處理程式介面來接收:IMixedRealityGestureHandlerIMixedRealityGestureHandler<TYPE> (請參閱事件處理程序數據表)。

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

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

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

事件順序

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

  • “Hold”:

    1. 按住點選:
      • 啟動 操作
    2. 按住超過 HoldStartDuration 的點選
      • start Hold
    3. 釋放點選:
      • 完成 保留
      • 完成 操作
  • “Move”:

    1. 按住點選:
      • 啟動 操作
    2. 按住超過 HoldStartDuration 的點選
      • start Hold
    3. 將手移出 NavigationStartThreshold
      • cancel Hold
      • 開始 流覽
    4. 釋放點選:
      • 完成 操作
      • 完整 導覽

範例場景

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

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