ゲームを作っていて、他のスクリプトのメソッドを使いたいケースは多々あります。Unityでシーン内のGameObjectにアタッチしたスクリプトを使う方法は主に以下の3つ方法があります。 SendMessageを使う EventSystemsを使う GetComponentする それぞれの方法についてメリット、デメリットを挙げ、使い分けができるように共有できればと思います。
はじめに 今回はコンポーネントに依存しないメソッドの実行方法についての記事になります! UnityにはSendMessageという一つのメッセージで複数の関数を起動するメソッドが備わっています。 具体的にはゲームオブジェクトにアタッチされている指定した名前と同じ全てのメソッドを呼び出すという動作をします。 おそらくよく使われるStart・Updateなどもこれで動作している?と勝手に思っていますが、正しいのはまだ分かっていないです。 これについて少し掘り下げてみましょう。 はじめに SendMessage SendMessageの使用例 MessageSystem MessageSystemの使用例 引数ありの使用例 さいごに 参考 SendMessage まずはSendMessageの詳細を見てみましょう。 public void SendMessage (string methodNa
この記事でのバージョン Unity 5.3.1f1 Personal はじめに Unity 4.6から登場したメッセージシステム、これは以下のようなもので、 SendMessageの後継みたいな感じらしいです。 新しい UI システムは、SendMessageを置き換えるために設計されたメッセージシステムを使用します。システムは、ただの C# です。SendMessageのいくつかの問題に対処することを目指しています。 Unity 4.6登場から結構経ちますが、実はまだ一度も使った事がなかったり……、 そもそもSendMessage自体使ってなかったですし(:3っ)∋〜 とは言え、便利そうな気配が漂いまくってるので、勉強がてら記事にしてみました! SendMessageから置き換えてみる とりあえずどんな感じで使うのか、SendMessageと比べてみました。 処理の内容は送信側のSend
Unity 4.6よりSendMessageに変わる新しいメッセージングが登場してしまいました。その名もExecuteEvents.Executeです。詳しくは下のマニュアルに書いてあります。 Unity - マニュアル: メッセージシステム この機能は、特定のインターフェースを持つコンポーネントを一括で操作する機能を有しています。要するに文字列ではなくインターフェースでメソッドを呼び出すSendMessageみたいなものです。 目次 目次 ExecuteEvents.Executeの使い方について サンプル ExecuteEvents.Executeの概要 継承されてるか判断する SendMessageとの違い 送信側・受信側が見つけやすい コールバック一覧をエディタで確認できる リファクタリングが容易 引数の指定が容易 高速 ExecuteEvents.Executeの使い方について
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く