Unityでキーボードを使ってUIのフォーカスを移動したい場合はNavigation
が使えるみたいです。
Inspectorから設定することもできますが、スクリプトから設定したい場合は次のような感じで実装できます。
Navigation navigation = new Navigation();
navigation.mode = Navigation.Mode.Explicit;
navigation.selectOnUp = button1; // 上キーでフォーカスを移したいところ
navigation.selectOnDown = button2; // 下キーでフォーカスを移したいところ
navigation.selectOnLeft = button3; // 左キーでフォーカスを移したいところ
navigation.selectOnRight = button4; // 右キーでフォーカスを移したいところ
button.navigation = navigation;
こんな感じで設定すれば、button
にフォーカスがある時に上キーを入力するとbutton1
にフォーカスが移動し、左キーを入力するとbutton3
にフォーカスが移動します。
SetSelectedGameObject
ちなみに、最初起動したばかりの段階ではどこにもフォーカスがありません。
初期値としてどこかにフォーカスを設定したい場合はSetSelectedGameObject
を使って設定できます。