アイテムのリストをCSVファイルで用意しておいて、商店の商品一覧に表示できるようにしました。1画面に6アイテムごとで、PREV/NEXTボタンでページを遷移できます。
ゲームパッドでの操作を考えるとフォーカスが必要ですが、初めはフォーカスはありませんでした。
フォーカスさせたいボタンのSelectableコンポーネントを取得して、Selectするとフォーカスが乗ります。
item.GetComponent<Selectable>().Select();
フォーカスされた状態なら、カーソルキーでフォーカスを移動できます。
TABでは移動しないようでした。
なお、ゲームパッドを接続している場合は、左アナログスティックでもフォーカスを移動できます。
対象の入力デバイスは、UnityのInputで登録している情報次第です。
フォーカスを遷移させたいGameObjectを自前のlistで保持しておいて、
現在のfocusの次をselectするという処理で、TABキーfocus移動もできました。
ただし、なにか設定すればこのコードはいらないかもしれません。自前だとListの管理なども必要ですし。
if (Input.GetKeyUp(KeyCode.Tab)) { GameObject goselected = EventSystem.current.currentSelectedGameObject; if(goselected==null) goselected = focusTarget[0]; for (int i=0;i<focusTarget.Count;i++) { if(focusTarget[i]==goselected) { if (i== focusTarget.Count-1) focusTarget[0].GetComponent<Selectable>().Select(); else focusTarget[i+1].GetComponent<Selectable>().Select(); } } }