【Unity】UGUI キー入力上手くいかない
目次
概要
UIメインのアプリケーションを作成時に、とあるボタンの動作でトラブった時の解決策のメモです。
状況
クリックで操作していたボタンに対して下記の操作を追加
// Enterキーを押した際にでクリックで操作と同じ関数を呼び出す if (Input.GetKeyDown(KeyCode.Return)) { OnClickButton(); }
発生した問題
Enterキーで同じ処理を呼び出しただけなのに、
Enterキーで処理させたい処理と+α別の処理が動いている⁉
意味わかんねー‼
色々調べてみると
色々試してみると、どうやら下記の2つの処理が動いてしまっていたようだ。
- Enterキーを押した際にスクリプトに記述した処理
- Enterキーを押すまでの手順で最後にクリックしたボタンの処理
Event Systemのナビゲーションのせい?
で最後に押したボタンにフォーカスが残っている。
そのせいでEnterを押した際に
Input.GetKeyDown()
最後に押したボタンのクリックイベント
が同時に動作しているせいでおかしなことになっていたようだ。
そんなんしらんやん...
解決した方法
Event System > Send Navigation Eventsのチェックを外す
個人的なメモですが、誰かの役に立てば幸いです。