Interactionコンポーネント
XR Interaction Manager
InteractorsとInteractables間の接続を確立するために、シーンごとに少なくとも1つのXR Interaction Managerが必要です。
Input Actionは、Input Action Managerを通して有効にする必要があります。手動で追加するには、Input Action ManagerコンポーネントのAction AssetsにInput Actionアセットを追加します。これらのアセットは、サンプルフォルダのShared Assets > Input Actions
にあります。
Controller Manager
Controller Managerは、QCHTIサンプルを除 き、サンプル全体を通してインタラクションに使用されるシンプルなプレハブです。以下のゲームオブジェクトで構成されています。
XR Controller Manager
は、接続されているInputDeviceに基づいて、アプリケーションで使用するXRControllerProfile
をフィルタリングします。Microsoft Mixed Reality Motion Controller ProfileまたはOculus Touch Controller ProfileについてはUnityのドキュメントを参照してください。
Host Controller
が使用されている場合、Device Pointerがアクティブになります。Device PointerにはHost Controllerのメッシュと入力参照が含まれます。
2つのコントローラを持つVRデバイスを使用している場合、XR Controllersオブジェクトがアクティブになります。
XR Controllersプレハブには、XR Controller (Action Based Controller)コンポーネントと、各コントローラーのプレハブへの参照と特定の入力参照を持つ、左右のコントローラ用の2つの ゲームオブジェクトが含まれます。
Interactionプレハブ
Interactionプレハブはより複雑なプレハブで、異なるインタラクションメソッドを切り替えるために使用できます。
Snapdragon Spacesのサンプルに含まれており、現在サポートされている異なるインタラクションのメソッド用の3つのプレハブが含まれています。XR Interaction Toolkitのサンプルシーンは、このプレハブとコンポーネントの使用例として使用できます。
Interaction Managerコンポーネントはこのプレハブのルートのオブジェクトにあります。このコンポーネントには、異なるインタラクション入力モダリティ用のメソッドと、入力インタラクションの切り替えを処理するコードが含まれています。
ARデバイスの場合、デフォルトの設定ではHand Trackingで開始し、QCHTパッケージが Unityプロジェクトに含まれていない場合や、Hand Trackingが対象のデバイスと互換性がない場合はGaze Pointerにフォールバックします。
そうでない場合は、Hand Tracking > Gaze Pointer > Device Inputの順に切り替わります。
関連する情報は、QCHTのハンドトラッキングの章にあります。
Gaze Pointer
Gaze Pointerプレハブは、以下のゲームオブジェクトで構成されます。
Gaze Interaction UIコンポーネントは、XR Gaze Interactorオブジェクトに追加されます。このコンポーネントは、XR Gaze Interactorコンポーネントとシーン内のUIオブジェクトとのインタラクションを管理 し、ポインターのタイマー時間やクリック機能を管理します。
現在、Gaze Pointerは、UIと3Dオブジェクトの両方とインタラクトできるPointer Controllerとは異なり、XR Simple Interactableコンポーネントを持つシーン内のUIオブジェクトとしかインタラクトできません。
XR Gaze Interactorプレハブには Spaces Composition Layerコンポーネントもあります。Composition Layerを使用してビューロックされたコンテンツをレンダリングする方法については、Gaze PointerのComposition Layerのサンプルを参照してください。
入力に関する表
以下の表はInput Actionに使用されるボタンをまとめたものです。
Host Controller | |
---|---|
選択 | トラッ クパッドのタップ |
Gaze/Pointerの切り替え | メニューボタン |
タッチパッド | トラックパッド |
アンカー位置の確認 | トラックパッドのタップ |
Controller Haptics
Controller Hapticsは、Interaction ManagerのSendHapticImpulse関数を介してXR Controller Manager
に送信されます。SendHapticImpulse
が呼び出されると、UIボタン押下時またはスクロール時に、ホストコントローラーでハプティックインパルスがトリガーされます。
Spaces Hand Tracking Button Binding
XR Interaction Toolkitのサンプルの各ボタン、トグル、スライダーのプレハブにはSpaces Hand Tracking Button Bindingコンポーネントがあり、不要なXR Simple Interactableコンポーネントや、Hand Tracking以外のインタラクションメソッド用のSnapping Volumesを無効にすることができます。
インタラクションパッケージ
Snapdragon Spacesのプラグインは様々なインタラクションパッケージと連動します。これらのプラグインを使用する方法については、各ページを参照してください。