/// <summary> /// オプションのタブボタンに対応したメニューを開くための設定 /// </summary> private void SelectedOptionButtonSettings() { // オプション画面を開いた際に選択できるUIのタブの数を調べる if (option_ui_.Length != 0) { // 配列の1番目の物を現在選択中のタブにする current_selected_ui_ = option_ui_[0]; current_selected_ui_.menu_ui_.SetActive(true); event_system_.SetSelectedGameObject(current_selected_ui_.tab_button_.gameObject); // メニュー画面を表示した際、タブの配列一つ目を選択する BaseEventData baseEventData = new BaseEventData(event_system_); baseEventData.selectedObject = current_selected_ui_.tab_button_.gameObject; option_ui_[0].tab_button_.OnSelect(baseEventData); baseEventData.Reset(); } foreach (var ui in option_ui_) { // ボタンを押した際にどのメニューを開くのかを設定 ui.tab_button_.onClick.AddListener( () => { // 前回開いていたメニューを閉じる current_selected_ui_.menu_ui_.SetActive(false); // ボタンに対応したメニューを開く ui.menu_ui_.SetActive(true); // 現在選択中のUIを変更 current_selected_ui_ = ui; } ); } }
private void Update() { // メニューを開く if (Input.GetButtonDown(Constants.InputName.PAUSE)) { foreach (var obj in active_menu_) { // メニューを開いている場合は閉じる、閉じている場合は開く obj.SetActive(!obj.activeSelf); } if (!active_menu_[0].activeSelf) { // メニューを開き直す度前回まで開いていたメニューを閉じ、配列最初のメニューを開く current_selected_ui_.menu_ui_.SetActive(false); current_selected_ui_ = option_ui_[0]; current_selected_ui_.menu_ui_.SetActive(true); // メニュー画面を表示した際、タブの配列一つ目を選択する event_system_.SetSelectedGameObject(option_ui_[0].tab_button_.gameObject); BaseEventData baseEventData = new BaseEventData(event_system_); baseEventData.selectedObject = current_selected_ui_.tab_button_.gameObject; option_ui_[0].tab_button_.OnSelect(baseEventData); baseEventData.Reset(); } } }