実現したいこと
Toggleの初期設定を簡単にするためのメソッドをつくりたいです。
前提
Toggleの初期値の設定と、状態が変化した際の動作として以下のように実装していました。
C#
1 [SerializeField] Toggle toggle; 2 bool value = true; 3 4 void Start() 5 { 6 toggle.SetIsOnWithoutNotify(value); 7 toggle.onValueChanged.AddListener((isOn)=> { value = isOn; }); 8 }
この方法の問題点として、同じ変数valueを2回記述する必要があるため、タイプミス等により不具合が発生する恐れがあります。
そのため、valueの記述を1回で済むよう初期設定用のメソッドを作成したいと考えました。
試したこと
下記のようにvalueを参照渡しすることで実装しようとしたのですが、ラムダ内ではrefパラメータが使えないため、エラーになります。
C#
1 ※このスクリプトはエラーになります 2 3 [SerializeField] Toggle toggle; 4 bool value = true; 5 6 void Start() 7 { 8 SetToggle(toggle, ref value); 9 } 10 11 void SetToggle(Toggle toggle, ref bool targetValue) 12 { 13 toggle.SetIsOnWithoutNotify(targetValue); 14 //ラムダ式内ではrefを使えないためエラーになる 15 toggle.onValueChanged.AddListener((isOn)=> { targetValue = isOn; }); 16 }
補足情報(FW/ツールのバージョンなど)
Unity 2021.3.18f1

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。