あさちゅんのゲームブログ

UnityやSiv3Dに関するゲーム開発メモを残していきます

UnityのEventSystemを操る

EventSystem

UnityでuGUIを作ると、必ずEventSystemが作られます。このEventSystemはプレイヤーのUIへの入力を制御していていて、uGUIを使う時は必ず1つ必要になります。(てか複数使うと怒られます。)

基本デフォルトのままで大丈夫なんですが、これをいじれるとちょっとだけお得な時があるのでそれを紹介します。

EventSystemを別のGameObjectにつける

EventSystem

まず、uGUIを作った時にはEventSystemというGameObjectが作られ、そこに"EventSystem"、"StandaloneInputModule"、"TouchInputModule"の3つが付きますが、特にこのGameObjectにつけていなければならないという訳ではないです。

たくさんGameObjectがあってもインスペクターの見栄えが悪いですから、好きなGameObjectに付け替えちゃいましょう。

操作に使うキーを変更する

操作に使うキーの設定はStandaloneInputModuleにある、"Horizontal Axis"や"Submit Button"などで決まります。ここで指定する文字列はInput Settingで設定している軸やボタンの名前です。デフォルトからいじっている人はインスペクターからいじればいいですが、実行中に変更したい時は以下のコードで実現できます。

キーコンフィグを2通り用意している時とかに便利です。

入力を無効にする

UIのアニメーション

シーン遷移やアニメーションの途中とかでプレイヤーにUIを操作させたくない時があります。そんな時は思い切ってEventSystemのenabledをfalseにします。案外enabled切り替えても問題なく動作します。ちなみに強制的に何かを選択するのはSetSelectedGameObjectメソッドです。

使用したソフト
OS X Yosemite バージョン 10.10.5
Unity 5.2.0f3