Unity の C# プログラミングで、画面上にボタンを複数置き、どのボタンが押されたか判定しようとした時に少し詰まりました。
ボタンごとに関数を用意したら動作上は可能ですが、効率が悪すぎます。スクリプトも長くなって見づらくなってしまいます。
簡単な方法で解決する事ができました。ボタンが押された時に値を引数として関数に飛ばす事ができたのです。初歩的な事すぎて、逆に調べてもわからない状態が続いていました。
具体的な方法
まず、関数には引数を受け取れるように設定します。
public function test(int num){ 処理 }
カッコ内の int num が引数です。int は型で num が変数ですが、変数名は自由に変えて問題ありません。
ボタンのインスペクターで、クリック時の処理を「+」を押して追加します。
スクリプトが紐付けられたオブジェクトを赤線部にマウスでドラッグアンドドロップします。
No Function の部分のドロップダウンメニューで、作っておいた関数を指定します。
すると、赤線部のテキストボックスに数値を入力できるようになっています。ここで入力した数値が、関数の引数【num】に代入される事になります。
ボタンごとにここの数値を変えておくと、関数内でボタンを変数 num で判別する事が可能になります。