Q&A
実現したいこと
・ボタン配列をForループで操作したい
・添え字に応じたイベントを登録したい
前提
インスペクターから登録した複数のボタンに
Forループを使って添え字に対応したイベントを登録したいです。
ゆくゆくはインスペクターからほかのデータも配列で登録して
同じ添え字同士で連携させたいので、できるだけ同じ関数を使いたいです。
以下のソースコードではボタンの添え字(例えばm_button[1]を押したなら1)を出力したいです。
該当のソースコード
C#
1using UnityEngine; 2using UnityEngine.UI; 3 4public class Test : MonoBehaviour 5{ 6 [SerializeField] 7 private Button[] m_button; 8 9 private void Start() 10 { 11 for (int i = 0; i < m_button.Length; i++) 12 { 13 m_button[i].onClick.AddListener(() => OnClickedButton(i)); 14 } 15 } 16 17 18 private void OnClickedButton(in int num) 19 { 20 Debug.Log(num); 21 } 22} 23 24
発生している問題・エラーメッセージ
どのボタンを押しても同じ数字が出力される
3 3 3
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/03/17 09:31