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

2015-08-17 #Unity

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

SendMessageで呼び出す方法


BroadcastMessageで呼び出す方法


直接関数を呼び出す方法

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


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

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

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


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

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


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

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


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

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


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

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

Profile

石原 悠 / Yu Ishihara

東京都杉並区在住。デザインとプログラミングとヨーグルト作りが好きです。