人工知性を作りたい

私が日々、挑戦したことや学んだことなどを紹介していく雑記ブログです。 (新しいAI技術HTM, 専門の音声信号処理, 趣味のアニメ等も書いてます。)

【Unity バグ修正】Scene移動先でUIフォーカスがFirstSelectedに設定したものと異なる

 

 

本記事のテーマ

「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フォーカスという単語自体、はじめは知らなかったので独学の欠点が出てしまった。

また一つ成長できました。