次の方法で共有


ジェスチャ - MRTK2

ジェスチャは、人の手の動きに基づく入力イベントです。 MRTK でジェスチャ入力イベントを発生させるデバイスとしては、次の 2 種類があります。

これら両方の入力ソースでは、ジェスチャ設定プロファイルを使用して、Unity のタッチ イベントとジェスチャ イベントが、それぞれ MRTK の入力アクションに変換します。 このプロファイルは、入力システム設定プロファイルの下にあります。

ジェスチャ プロファイル

ジェスチャ イベント

ジェスチャ イベントは、ジェスチャ ハンドラ インターフェイスの 1 つであるIMixedRealityGestureHandlerまたはIMixedRealityGestureHandler<TYPE>を実装することによって受信されます (イベントハンドラの表を参照)。

ジェスチャ イベント ハンドラーの実装例については、「サンプル シーン」を参照してください。

汎用バージョンを実装する場合は、OnGestureCompleted イベントと OnGestureUpdated イベントで、次の型の型指定データを受け取ることができます。

  • Vector2 - 2D の位置ジェスチャ。 deltaPositionを通知するためにタッチスクリーンによって生成されます。
  • Vector3 - 3D の位置ジェスチャ。 以下を通知するために HoloLens によって生成されます。
  • Quaternion - 3D の回転ジェスチャ。 カスタム入力ソースで使用できますが、現在のところ、既存の入力ソースでは生成されていません。
  • MixedRealityPose - 3D の位置/回転ジェスチャを組み合わせ。 カスタム入力ソースで使用できますが、現在のところ、既存の入力ソースでは生成されていません。

イベントの順序

ユーザー入力に応じて、イベントの 2 つの主要なチェーンがあります。

  • 「Hold」 :

    1. 長押しタップ:
      • 操作を開始
    2. HoldStartDuration を超える長押しタップ:
      • HOLDを開始
    3. リリース タップ:
      • ホールドを完了
      • 操作を完了
  • 「Move」:

    1. 長押しタップ:
      • 操作を開始
    2. HoldStartDuration を超える長押しタップ:
      • HOLDを開始
    3. NavigationStartThreshold を超えて 手を動かす:
      • HOLDをキャンセル
      • ナビゲーションを開始
    4. リリース タップ:
      • 操作を完了
      • ナビゲーションを完了

シーンの例

HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) シーンでは、ポインターの結果を使用して、ヒット位置にオブジェクトを生成する方法を示しています。

GestureTester(Assets/MRTK/Examples/Demos/HandTracking/Script) スクリプトは、GameObjects を通じてジェスチャ イベントを視覚化するための実装例です。 ハンドラー関数は、インジケータオブジェクトの色を変更し、シーン内のテキストオブジェクトに最後に記録されたイベントを表示します。