以下でスクリプトからボタンの処理を取り付けできる。
Button btn;
btn.onClick.AddListener(() => DoMethod());
DoMethodは取り付けたい処理を書きます。
Inspectorから追加する場合は引数一つしかできませんが、
スクリプトからだと複数でもいけます。
以下のようにループする場合はno = iのように
一時変数を作って渡す
ループのインデックス「i」を渡すと、変数そのものが渡されるので
全てループ終了後のインデックス値になってしまいます。
地味にはまったので記載しておきます。
Button btn;
btn.onClick.AddListener(() => DoMethod());
DoMethodは取り付けたい処理を書きます。
Inspectorから追加する場合は引数一つしかできませんが、
スクリプトからだと複数でもいけます。
以下のようにループする場合はno = iのように
一時変数を作って渡す
for (int i = 0; i < max; i++)
{
int no = i;
btn[i].onClick.AddListener(() => DoMethod(no));
}
ループのインデックス「i」を渡すと、変数そのものが渡されるので
全てループ終了後のインデックス値になってしまいます。
地味にはまったので記載しておきます。
0 件のコメント:
コメントを投稿