【Unity】デリゲート(delegate)を使ってコールバックを実装する

  • |
【Unity】デリゲート(delegate)を使ってコールバックを実装する
   

cocos2dxやObjective-cなどにも存在する「デリゲート」をUnityもといC#で実装をしたいと思い、色々調べました。
主に、何かの処理が終わった時に呼び出して利用することができるのですが、これを自由に実装することができるようになれば表現の幅も広がります。

デリゲート

デリゲートで宣言されたメソッド名をクラスにして利用します。
参照する先のメソッドと同じ「引数」「戻り値」を付けます。


デリゲートが参照するメソッド

デリゲートに合わせたメソッドを作成します。


実際に利用する場合

利用する場合には、参照するメソッドをデリゲートのインスタンスで利用します。


静的メソッドでデリゲードを実装

これまではインスタンスをしたオブジェクトを利用していましたが、静的メソッドでもデリゲードは実装できます。



コールバック

コールバックを実装は以下のサイトを参考にしました。
Unity C# Callbackパターンの書き方 – Qiita


コールバックを呼び出す実装。
インスタンスを作成して、コールバックを呼び出します。


解説

デリゲートで宣言されたメソッドに参照メソッドを引数で渡すことで、CallBackTestクラスで参照先のメソッドを呼び出すことができます。


今回の例では、オブジェクトがDestroy()する前に、コールバックを使ってCallBackTestクラスのメソッドを呼び出しています。


最後に

色々と試した所、中々理解が難しいです。
cocos2dxでは、何かの処理が終わった時にコールバックを使う場合がほとんどでしたので、これをUnityでも実装ができれば便利だなと感じました。

Unity5 3Dゲーム開発講座 ユニティちゃんで作る本格アクションゲーム (Smart Game Developer)Unity5 3Dゲーム開発講座 ユニティちゃんで作る本格アクションゲーム (Smart Game Developer)
まつだす,BATA,㊥Maruchu,うにたじゃむお,栗坂こなべ,森理 麟,alwei

翔泳社
売り上げランキング : 27545

Amazonで詳しく見る

Related Posts Plugin for WordPress, Blogger...