Unityでdelegateを何度か使ったことがあるのですが、よく書き方を忘れるのでメモしておきます。
Unityでdelegateを使用する
Unityでdelegateを使用する場合は下記のように記述します。
複数のdelegateを登録して、マルチキャストすることもできます。
using UnityEngine;
public class DelegateSample : MonoBehaviour
{
// delegateの宣言
public delegate void OnComplete();
public OnComplete onComplete;
void Start()
{
// delegateを追加する。
this.onComplete += Close1;
this.onComplete += Close2;
this.onComplete += Close3;
// delegateを実行する。
if (this.onComplete != null)
this.onComplete();
// delegateを削除する。
this.onComplete -= Close1;
this.onComplete -= Close2;
this.onComplete -= Close3;
}
private void Close1()
{
Debug.Log("Close 1");
}
private void Close2()
{
Debug.Log("Close 2");
}
private void Close3()
{
Debug.Log("Close 3");
}
}
今は呼び出し先のメソッド内で呼び出し元の処理を呼びたいときとかに使っているんですが、他にももっと使いみちがありそうな気がしています。
今後はもっとdelegateを有効に活用していきたいですね。
環境
Windows 10 Pro
Unity 2019.4


コメント
コメントを投稿