Unityでゲームオブジェクトやコンポーネントのメソッドを呼び出す方法色々

この記事は最終更新日から8年以上経過しています。

Unityで他のゲームオブジェクトやコンポーネントのメソッドを呼び出すのに色々方法があるそうなのでメモ。覚えられる自信が…無い…

SendMessageで呼び出す方法


BroadcastMessageで呼び出す方法


直接関数を呼び出す方法

コンポーネントが見つからないとエラーになるので RequireComponent を使用して必要なコンポーネントも自動でアタッチされるうようにしておく。


EventHandlerを使用して呼び出す方法

!= nullで存在を確認しないとメソッドが紐付けられていない時にエラーになる。

+= を使用して、メソッドを紐付けてもいいし delegate(){} を使ってその場で内容を記述してもいい。


EventHandlerを使用して呼び出す方法(引数を渡す場合)

引数を渡すには EventArgs を継承したカスタムイベント用のクラスを作らないといけない。


UnityEventを使用して呼び出す方法

public UnityEvent OnUnityEvent; はこれだけでインスペクタ上からメソッドを追加できるようになるので便利。


UnityEventを使用して呼び出す方法(引数を渡す場合)

引数を追加するには public class CustomUnityEvent : UnityEvent<string>{}; などのカスタムイベント用のクラスを作らないといけないので注意。複数の値や他の値を持たせる事ももちろん可。


ExecuteEventsを使用して呼び出す方法

受け手側は先にインターフェースを作り、それを継承する必要がある。

Comment
comments powered by Disqus
Profile

石原 悠 / Yu Ishihara

デザインとプログラミングと編み物とヨーグルトが好きです。