本記事のテーマ
「UIフォーカスがFirstSelectedに設定したものと異なる」問題の解決
制作環境
・Unity2021.3.0.f1
不具合解析
本ゲームはCheckPointScene→MazeSceneという流れになっています。
■現象
CheckPointからMazeSceneへ移動後、EventSystemのInspectorにあるFirstSelectedに設定されているButtonにフォーカスが当たっていなかった。
■原因
CheckPointからMazeSceneへ↑矢印キーで移動しながら扉の中に入ってシーンが移動します。その際、Scene移動後すぐに↑矢印キーの入力が入っており、FirstSelectedの上にあるButtonにフォーカスが移動していた。
修正方法
■修正方法1
First Selectedに割り当てたButtonのInspector内になるButtonComponentのNavigation項目をNoneにしてキー入力によるフォーカスを移動しないようにする。
■修正方法2
ScriptからEventSystemComponetを使用して制御する。
(例)
GameObject firstSelect;
EventSystem.current.SetSelectedGameObject(firstSelect);
感想
パッと見では分かりにくいバグであるが、知っていればどうといったことのないバグだったので気づいた時は閃いた感があって嬉しかった。
UIフォーカスという単語自体、はじめは知らなかったので独学の欠点が出てしまった。
また一つ成長できました。