UI インタラクションの設定
Unity のビルトイン UI 要素を操作するには、追加の手順を実行する必要があります。特に 3D 追跡対象デバイスを扱う方には重要です。XR Interaction Toolkit パッケージは、XR コントローラーを変換して UI とシームレスに連携するために利用できる多数の新しいコンポーネントを提供します。また、基本的なコンフィギュレーション設定を扱うヘルパーメニューオプションも備わっています。
GameObject メニューの使用
XR Interaction Toolkit パッケージには、基本設定を実行するメニュー項目が含まれています。このヘルパーを使用して、新しい UI キャンバスを作成します。ヘルパーには GameObject > XR メニューからアクセスできます。
ヘルパー | 機能 |
---|---|
UI Canvas | 標準の UI 要素を追加できる新しいワールド空間のキャンバスを作成します。Event System をまだ設定していない場合は、XR 用の新しい Event System も作成して設定を行います。 |
UI EventSystem | XR 用の新しい Event System を作成するか、ロードされたシーンで既存の Event System を変更して選択します。 |
Event System
Event System コンポーネントは、UI イベントの中心的なディスパッチとして入力を処理し、個々のアクティブなキャンバスを更新します。各 Event System は追加的に、入力の処理に Input Module を必要とします。下図のデフォルト設定を基本として使用すると良いでしょう。一度にアクティブにできる Input Module は 1 つだけです。Tracked Device Physics Raycaster をシーンに追加して、物理コライダーを持つオブジェクトが追跡対象デバイスから Event System イベントを受け取れるようにすることもできます。
[!重要] 既存の Canvas または Event System がある場合は、大抵、適切な入力処理を妨げる Standalone Input Module や Input System UI Input Module コンポーネントがあります。More メニュー (⋮) をクリックし Remove Component を選択して、該当するコンポーネントを削除してください。他の UI Input Module は XR UI Input Module と互換性がなく、望まない動作や予期しない動作を引き起こすことがあります。したがって、1 つの Input Module だけを使用して UI インタラクションを処理してください。
[!ノート] 既知の制限事項: XR UI Input Module の設定時に、新しい Input System を使用しても、使用中のゲームパッドやジョイスティックの入力ボタンが既知の値にハードコードされています。ゲームパッドの場合は、Submit ボタンが buttonSouth に、Cancel ボタンが buttonEast にマップされます。ジョイスティックでは、Submit ボタンが Trigger にマップされ、現在のところ Cancel ボタンはサポートされていません。
Canvas
キャンバスにはすべての UI 要素が存在しています。XR Interaction Toolkit では、Render Mode が World Space に設定されているキャンバスだけを操作できます。XR Interaction Toolkit パッケージには、Tracked Device Graphic Raycaster という新しいコンポーネント (下図) が含まれています。このコンポーネントがあると、3D 追跡対象デバイスを使用してキャンバス内の UI 要素を強調表示し、選択することができます。