SendMessageの引数にArray型を仕込む
private var ary : Array; function OnTriggerEnter(info:Collider) { if(info.gameObject.tag == "Enemy") { info.gameObject.SendMessage("ApplyDamage", ary); } }
上のメソッドに対してSendMessageの受け皿はこれ。
public function ApplyDamage( ary:Array ) { // do something }
↑Arrayの引数を受け取る前提のApplyDamageだ。
しかしながら、こんなエラーが出ることがある。
Calling function without parameters but the function requires 1.
→引数がない関数を呼んだのに、呼ばれた関数は引数を1つ必要だよ。
え??引数にArrayなのに、なぜ??
原因は、空のArrayが引数になってることだ。
Arrayが初期化されずにnullの場合は引数がなかったことにされる罠