今回は、直接簿記とは関係ない内容ですが、画面に簡単な表示切替用のスイッチ(タブ切替機能)を追加します。
構成
表示の切り替えには、GameObjectの表示切り替え機能(SetActive)を使います。まとめて表示を切りたいものをグループ化しておけば、スイッチ一つで表示の切り替えができます。
今回は2つのスイッチを追加します。今回の画面構成は、一部の機能は共通で使っています。そのため、グループ分けを少し工夫します。
実際の画面にあてはめると以下になります。
Hierarchy
2つのボタンと、ボタンを束ねるEmtpy Object でスイッチを構成します。
コード
今回は2モード用の切り替えに特化したコードになっています。ボタン数と、ボタンを押された時の処理(ButtonClicked)を変更すれば、3つ以上のモードにも対応できそうです(そのうちに)。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ModeSwitch : MonoBehaviour { [SerializeField] GameObject[] window = new GameObject[2]; void ButtonClicked(int buttonNo) { Debug.Log("Button Clicked = " + buttonNo); if( buttonNo == 0 ){ window[0].SetActive(true); window[1].SetActive(false); } else if( buttonNo == 1 ){ window[0].SetActive(false); window[1].SetActive(true); } } // Start is called before the first frame update void Start() { int i = 0; Button button; foreach( Transform child in gameObject.transform ){ button = child.gameObject.GetComponent<Button>(); if( !ReferenceEquals(button, null) ){ int ii = i; button.onClick.AddListener(() => ButtonClicked(ii)); i++; } } ButtonClicked(0); } }
先ほどのコードをModeSwitchゲームオブジェクトに割り当てると、2つのゲームオブジェクトを指定する枠が作られます。
先ほどのA、B画面をそれぞれ割り当てます。
動作テスト
ボタンの名前は、それぞれ「貸借対照表」「現金仕訳」としています。
それぞれのボタンを押すと、表示が切り替わるのが確認できます。
ゲームのURL(前回までと同じURLです)
tomo-mana.hatenablog.com
次回
言語切替スイッチを実装します。