Unity:外部からオブジェクトグループの関数をまとめて呼び出したい

Unityをいじっているみなさま、こんにちは。
ヤマヤタケシです。

Unityは相変わらずよく出来たツールです。

さて、オブジェクトのグループを作って、それらに対してまとめて実行させたいことがありますよね?

そんなときは、まとめ役のUnityのGameObject をつくって、その子供にメンバーをぶら下げてやれば、まとめてメッセージを送ることができます。
unity_broadcastmessage

メッセージは関数です。メソッドといったほうがいいのかもしれませんが、とにかく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 );

そんじゃまた。

軽い気持ちで有名になりたいのでクリックをお願いします!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です