UnityのUtilityにあるEventSystemCheckerを使ってみる

記事内に広告が含まれています。

今回はUnityのスタンダードアセットのUtilityにあるEventSystemCheckerを使ってみたいと思います。

EventSystemCheckerはUnityでUIのイベントを扱う時に必要になるEventSystemがゲーム中に存在しているかどうかを確認し、なければ追加するスクリプトです。

通常であればUIを追加した時に自動でEventSystemは追加されますが、誤って削除してしまう事もあります。

そんな時にEventSystemCheckerスクリプトを何らかのゲームオブジェクトに取り付けておくとEventSystemとStandaloneInputModuleをAwakeメソッドのタイミングで追加してくれます。

スポンサーリンク

EventSystemCheckerの取り付け

ヒエラルキー上に空のゲームオブジェクトを作成し、EventSystemCheckerを取り付けます。

もちろん空のゲームオブジェクトを作る必要はなく、他のゲームオブジェクトに取り付けても問題ありません。

EventSystemCheckerはAssets→StandardAssets→Utilityにあります。

EventSystemがないとボタンはどう反応するのか?

まずはヒエラルキー上にUIのボタンを作成し、EventSystemを削除した場合にボタンの反応がどうなるかを見てみます。

ヒエラルキー上で右クリック→UI→Buttonを選択し、UIのボタンを作成します。

EventSystemが自動で配置される

↑のように自動でEventSystemも配置されました。

ButtonのHighlighted Colorを赤色に変更します。

ButtonのHighlighted Colorを赤色に変更

これでUnityを実行し、マウスポインタをボタンの上に持っていくと、

通常ではボタンがハイライトされると赤色に変化する

↑のようにボタンが赤色に変化し、ボタンが選択されている事がわかります。

ここで、ヒエラルキー上のEventSystemを削除して再度Unityを実行しボタン上にマウスポインタを持っていくと、

EventSystemを消してボタンをハイライトしてみる

↑のようにボタンの色も変わらず、ボタンを押しても反応がありません。

このようにUIの操作をする時はEventSystemが必要になります。

EventSystemを消してEventSystemCheckerを試す

EventSystemを消した状態で空のゲームオブジェクトを作成し、名前をEventSystemCheckerとし、EventSystemCheckerスクリプトを取り付けます。

EventSystemという文字が出てきすぎ・・・・・(ーー;)

ヒエラルキーは、

EventSystemCheckerを配置したヒエラルキー

↑のようになりEventSystemを削除した状態にします。

EventSystemCheckerゲームオブジェクトにはEventSystemCheckerスクリプトを取り付けた状態にします。

空のゲームオブジェクトにEventSystemCheckerを取り付けた状態

これでサンプルが出来上がったので、Unityを実行し、ヒエラルキー上にEventSystemが現れるか確認してみます。

↑のようになりました。

関係ないゲームオブジェクトがヒエラルキー上にいっぱい映っていますが・・・、これはブログ記事用(Utility系)の機能に使っているサンプルが表示されているだけなので、関係ありません。

EventSystemChecker自体はEventSystemが存在していない時に、追加するだけの機能なのでシンプルですが、あればいちいちEventSystemがあるかどうか気にしなくてもいいのでいいかも?

タイトルとURLをコピーしました