Unityをいじっているみなさま、こんにちは。
ヤマヤタケシです。
Unityは相変わらずよく出来たツールです。
さて、オブジェクトのグループを作って、それらに対してまとめて実行させたいことがありますよね?
そんなときは、まとめ役のUnityのGameObject をつくって、その子供にメンバーをぶら下げてやれば、まとめてメッセージを送ることができます。
メッセージは関数です。メソッドといったほうがいいのかもしれませんが、とにかくJavascript であれば function です。
例えばこんな感じ。
var objectRoot = GameObject.Find( "Root" ); objectRoot.BroadcastMessage( "Hit" );
このコードではobjectRootとその子供たちの function Hit(){} が呼び出されます。
やったね!
・・・・が、エラーがでました。
BroadcastMessage Hit has no receiver!(レシーバーがないじゃないかこのアホが!
調べてみると、objectRootには function Hit が定義されていませんでした。
なんてこった、BroadcastMessage を使うときは全てに Hit を定義しなければならないのか・・・。
めんどくせー!!!
・・・・と、思ったらちゃんとあるじゃないですか。
SendMessageOptions.DontRequireReceiver.(レシーバーは要求しないぜ子猫ちゃん。)
これで解決!
var objectRoot = GameObject.Find( "Root" ); objectRoot.BroadcastMessage( "Hit", SendMessageOptions.DontRequireReceiver );
そんじゃまた。