Version: 2023.1
言語: 日本語
Panel Settings プロパティのリファレンス
ランタイム UI のパフォーマンスに関する考慮点

ランタイム UI イベントシステム

UI Toolkit はイベントシステムを使って入力を処理し、すべてのアクティブなパネルにイベントを送信します。

UI Toolkit のイベントシステムは、IMGUI と古い Input Manager からイベントを受け取ることができます。ナビゲーションイベントは、古い Input Manager で定義された軸から作成されます。その他のイベントは IMGUI イベントキューから発生します。

特定の場合を除いて、イベントシステムを使うためにシーンにコンポーネントを加える必要はありません。

複数の Panel Settings アセットによるイベントシステム

シーンで複数の Panel Settings アセットが使用されている場合、イベントシステムは、Sort Order に従って、それらのパネルにポインターイベントを送信します。ポインターイベントは、パネルが反応するまで、パネルを通して伝搬します。

フォーカスされた要素にイベントを使用して影響を与える最初のパネルが、イベントシステムのフォーカスのあるパネルになります。そのパネルは、別のイベントによって別のパネルがフォーカスパネルになるまで、キーボードイベントを受け取り続けます。

ノート: イベントの伝播を止めることと、要素にフォーカスを与えることは別のことです。例えば、ボタンをクリックする場合、伝播は停止され、ボタンだけが押されたことに反応するようになりますが、ボタンやクリックされたフォーカス可能な要素にフォーカスを与えるなど、クリックに対する他のデフォルトのアクションを防ぐことはできません。

UI Toolkit で uGUI を使う

UI Toolkit の UI Documet と uGUI コンポーネントを同時に使用できます。

シーンに最初の uGUI 要素を加えると、Event SystemStandalone Input Module が自動的に加えられます。

  • Event System (イベントシステム) は、uGUI オブジェクトがイベントに反応できるようにします。
  • Standalone Input Module (スタンドアロン入力モジュール) は、UI Toolkit 要素にイベントを送信します。

イベントシステムはシーンを読み込んでイベントを実行し、Standalone Input Module は入力を解釈してイベントの実行を要求します。Standalone Input Module は、他の入力モジュールと置き換えることができます。他の入力モジュールは、どの入力が消費されるのかを変えますが、すべてのイベントはイベントシステムを経由して実行されます。

UI Toolkit は、パネルのソート順を使用し、uGUI キャンバスや他の有効なレイキャストターゲットのソート順と比較して、ポインターイベントを UI Toolkit 要素に送るべきか、uGUI オブジェクトに送るべきか、シーン内の他のものに送るべきかを決定します。同様に、UI Toolkit はイベントシステムの currentSelectedGameObject を設定して、UI Toolkit パネルがフォーカスを得たいときに、他の uGUI オブジェクトからフォーカスを外すようにします。他の uGUI オブジェクトからフォーカスを外し、uGUI オブジェクトが選択されると、UI Toolkit パネルは自動的にフォーカスを失います。

イベントシステムを手動で加えるには、GameObject > UI > Event System を選択します。

UI Toolkit でイベントシステムと入力システムを使う

異なる入力システムで UI Toolkit (と uGUI) を使用する場合、異なる入力モジュールとイベントシステムを選択する必要があります。

以下の表は、各入力システムの用途に必要なコンポーネントと設定について説明しています。

使用法 必須コンポーネント 実際の入力処理
古い Input Manager を使った UI Toolkit 要素 デフォルトのイベントシステムを使用。シーンコンポーネントは必要ありません。 Input Manager (旧).
Input System パッケージを使った UI Toolkit 要素 Input System UI Input ModuleEvent System コンポーネント。 Input System パッケージ (新)
古い Input Manager を使った UI Toolkit 要素と uGUI コンポーネント Standalone Input ModuleEvent System コンポーネント。 Input Manager (旧) または 両方
Input System パッケージを使った UI Toolkit 要素と uGUI コンポーネント Input System UI Input ModuleEvent System コンポーネント。 Input System パッケージ (新) または 両方
  • Active Input Handling 設定は Edit > Project Settings > Player > Active Input Handling の順に選択します。

Input System パッケージの使用

UI Toolkit は Input System パッケージと一緒に使うことができます。

  1. Package Manager を使用して、Input Systemパッケージを インストール します。
  2. 編集プロジェクト設定プレーヤーを選択します。
  3. Edit > Project Settings > Player に設定します。
  4. GameObject > UI > Event System を選択します。 これにより、シーンにStandalone Input Module を含む Event System ゲームオブジェクトが追加されます。このモジュールは、Inspector ウィンドウにボタンと共にエラーメッセージを表示します。
  5. Replace with InputSystemUIInputModule を選択すると、Standalone Input ModuleInput System UI Input Module に置き換えられます。Input System UI Input Module とそれに付随する Event System によって、UI Toolkit と uGUI 要素の両方のイベントが正しく送信されます。

その他の参考資料

Panel Settings プロパティのリファレンス
ランタイム UI のパフォーマンスに関する考慮点