はりうすブログ (のすけのメモ)

湘南にある小さな会社 代表 ”のすけ”のブログです

Unity EventSystemとは

Unity EventSystemとは

入力、レイキャスト、イベント送信を処理する機能

EventSystem

  • シーン内にEventSystemは1つだけ含めること
  • 他のモジュールと連動して動作する
  • 状態を保持する

処理内容

EventSystemが開始されると、同じGameObjectに接続されている BaseInputModuleを検索し、それらを内部リストに追加します。更新時に、接続されている各モジュールはUpdateModules呼び出しを受け取り、モジュールは内部状態を変更できます。各モジュールが更新された後、アクティブなモジュールでプロセス呼び出しが実行されます。ここで、カスタムモジュール処理を実行できます。

利用方法

using UnityEngine.EventSystems;

とライブラリを呼び出す

//現在のイベントシステムを取得
EventSystem es = EventSystem.current;
//現在のインプットモジュールを取得
EventSystem es = EventSystem.current;
BaseInputModule bim = ev.currentInputModule;
// 選択中のGameObject
EventSystem es = EventSystem.current;
GameObject obj = es.currentSelectedGameObject;
//初期状態にで選択したいオブジェクトを設定
EventSystem es = EventSystem.current;
es.firstSelectedGameObject = gameObject;

Standalone Input Module

このモジュールはコントローラー/マウスの入力が思い通りに動作するように設計されています。入力に反応して、ボタンの押下、ドラッグ、それに類似の動作のイベントが送信されます。

このモジュールはマウス/入力デバイスが移動するとき、ポインターイベントをコンポーネントに送信します。そして、Graphics Raycaster と Physics Raycaster を使って、現在、どの要素が指定したポインターバイスによって指されているかを計算します。目的に応じて、これらのレイキャスターを設定して、シーンのある部分を検証したり無視したりすることが可能です。

モジュールは Input ウィンドウを通して追跡された入力に応答して移動のイベントと 送信/キャンセルのイベントを送信します。これは、キーボード入力とコントローラー入力の両方に使用できます。追跡された軸とキーはモジュールのインスペクターで設定可能です。

プロパティ 機能

  • Horizontal Axis 水平軸のマネージャー名を入力します
  • Vertical Axis 垂直軸のマネージャー名を入力します
  • Submit Button 送信(決定)ボタンのマネージャー名を入力します
  • Cancel Button キャンセルボタンのマネージャー名を入力します
  • Input Actions Per Second 1 秒間に可能なキーボード/コントローラーの入力数
  • Repeat Delay 1 秒毎の入力操作が繰り返されるまでの遅延時間 (秒単位)
  • Force Module Active これを有効にすると、この Standalone Input Module を強制的にアクティブにします。

Horizontalは横軸、Vertical は縦軸
Submitが決定、Cancelがキャンセル
Input Actions Per Secondが連打可能かどうかの設定
Repeat Delay 連打具合の許容値