質問: false; }} ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: 色々やり方あると思いますが、分かりやすさ優先で。 選択中のアイテムは1つだけだと思うので、個別のboolではなくintを持ってアイテムIDを入れることにします。 (もし複数同時選択可能とかならList使うとかアレンジしてください) ``` //トグルの配列:アイテムIDの順番通りに入れること public Toggle[] toggles; //現在選択中のアイテム(どれも選択していない時は−1) //今はprivateにしてますが適宜変更してください private int nowChiceItemId = -1; void Start() { foreach (Toggle item in toggles) { item.onValueChanged.AddListener(OnChange); } } //トグルが切り替わったら呼ばれる //(なおisOnはonValueChangedの引数合わせの為に設定しているが実際には使用していない) public void OnChange (bool isOn) { //一旦未選択状態にして...... nowChiceItemId = -1; //全てのToggleを確認して...... for (int i = 0; i < toggles.Length; i++) { //オンのものがあったら...... if (toggles[i].isOn) { //そのID(配列のインデックス)を取得する nowChiceItemId = i; } } } ``` 以上のソースを、シーン内の適当なオブジェクト1つに付けてください。 その後インスペクタから`toggles`に、事前に用意しておいたToggleを、アイテムIDの順番通りになるように入れてください。 (Toggleオブジェクトはオンの時に赤枠が付くようにヒエラルキー上で調整しておいてください) 後は「どれが選択中か」を判定するタイミングでnowChiceItemIdを参照してください。 `nowChiceItemId == 0`なら「配列0番(先頭)のアイテムが選択中」 `nowChiceItemId == 1`なら「配列1番(先頭から2番目)のアイテムが選択中」 `nowChiceItemId == -1`なら「どのアイテムも選択されていない」 となります。