前提・実現したいこと
Unityでチェックボックスから一つを選んで選んだチェックボックスについているテキストを変数に入れたいです。
やったことはgameObject(ToggleManager)の子にToggleを4つ配置しそれぞれの子にTextを配置しています。ToggleManagerにToggleGroupを作り4つのトグルを紐づけしています。(画像1)
そしてToggleManagerに以下のスクリプトを張り付けています。そして各トグルのOn Value Changedのところでdebugメソッドを呼びだすようにしています。(画僧2)
発生している問題・エラーメッセージ
この状態で実行しチェックボックスを押すとチェックができず NullReferenceException: Object reference not set to an instance of an object JobToggle.debug () (at Assets/MakeChara/JobToggle.cs:20) というエラーメッセージがでてしまいます。
該当のソースコード
using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Linq; using UnityEngine.UI; using System.Collections; public class JobToggle : MonoBehaviour { ToggleGroup togglegroup; string tgljob = ""; public void Start() { Debug.Log("スタートメソッド"+this.name); } public void debug(){ tgljob = togglegroup.ActiveToggles() .First().GetComponentsInChildren<Text>() .First(t => t.name == "Text").text; Debug.Log("トグルが変更されたよ"+tgljob); } }
試したこと
スクリプトの
tgljob = togglegroup.ActiveToggles()
.First().GetComponentsInChildren<Text>()
.First(t => t.name == "Text").text;
の部分を削除すると何も問題なく動きます。
参考までにゲーム画面も貼っておきます(画像3)
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー