ジェスチャ - MRTK2
ジェスチャは、人の手の動きに基づく入力イベントです。 MRTK でジェスチャ入力イベントを発生させるデバイスとしては、次の 2 種類があります。
HoloLens などの Windows Mixed Reality デバイス。 これは、ピンチモーション (「エアタップ」) とタップアンドホールドジェスチャについて説明しています。
HoloLens のジェスチャの詳細については、Windows Mixed Reality のジェスチャに関するドキュメントを参照してください。
WindowsMixedRealityDeviceManager
はUnity XR.WSA.Input をラップします。GestureRecognizer は、HoloLens デバイスから Unity のジェスチャイベントを使用します。タッチ スクリーン デバイス。
UnityTouchController
は、物理的なタッチ スクリーンをサポートする Unity Touch クラスをラップします。
これら両方の入力ソースでは、ジェスチャ設定プロファイルを使用して、Unity のタッチ イベントとジェスチャ イベントが、それぞれ MRTK の入力アクションに変換します。 このプロファイルは、入力システム設定プロファイルの下にあります。
ジェスチャ イベント
ジェスチャ イベントは、ジェスチャ ハンドラ インターフェイスの 1 つであるIMixedRealityGestureHandler
またはIMixedRealityGestureHandler<TYPE>
を実装することによって受信されます (イベントハンドラの表を参照)。
ジェスチャ イベント ハンドラーの実装例については、「サンプル シーン」を参照してください。
汎用バージョンを実装する場合は、OnGestureCompleted イベントと OnGestureUpdated イベントで、次の型の型指定データを受け取ることができます。
Vector2
- 2D の位置ジェスチャ。deltaPosition
を通知するためにタッチスクリーンによって生成されます。Vector3
- 3D の位置ジェスチャ。 以下を通知するために HoloLens によって生成されます。- 操作イベントの
cumulativeDelta
- ナビゲーション イベントの
normalizedOffset
- 操作イベントの
Quaternion
- 3D の回転ジェスチャ。 カスタム入力ソースで使用できますが、現在のところ、既存の入力ソースでは生成されていません。MixedRealityPose
- 3D の位置/回転ジェスチャを組み合わせ。 カスタム入力ソースで使用できますが、現在のところ、既存の入力ソースでは生成されていません。
イベントの順序
ユーザー入力に応じて、イベントの 2 つの主要なチェーンがあります。
「Hold」 :
- 長押しタップ:
- 操作を開始
- HoldStartDuration を超える長押しタップ:
- HOLDを開始
- リリース タップ:
- ホールドを完了
- 操作を完了
- 長押しタップ:
「Move」:
シーンの例
HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) シーンでは、ポインターの結果を使用して、ヒット位置にオブジェクトを生成する方法を示しています。
GestureTester
(Assets/MRTK/Examples/Demos/HandTracking/Script) スクリプトは、GameObjects を通じてジェスチャ イベントを視覚化するための実装例です。 ハンドラー関数は、インジケータオブジェクトの色を変更し、シーン内のテキストオブジェクトに最後に記録されたイベントを表示します。