使い方

  • delegate デリゲート型を宣言する構文キーワード
  • event クラスメンバーを宣言する構文キーワード/通知をトリガーすることでコールバックを呼び出す
  • System.Action 予め定義されたデリゲート型
  • UnityAction UnityEvent で使用される引数なしのデリゲート
  • UnityEvent MonoBehaviour クラスで用いるイベント型

参考:

Unity コールバックの受け取り方あれこれ – Qiita

Unity のコールバックの実装方法 | npaka

Event 関連の一体どいつがイベントハンドラー/Sender/Receiverなのか | はなちるのマイノート

UnityAction

UnityEvent で使用される引数なしのデリゲート

ドキュメント:

UnityAction | Unity スクリプトリファレンス [公式]

UnityEvent

MonoBehaviour クラスのメンバーとしてイベントを定義する際に用いる型

  • ?. でメンバーを参照し、Invoke メソッドでイベントをトリガーする。
使用例
public class Example : MonoBehaviour
{
    public UnityEvent OnSpaceKeyDown;

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            OnSpaceKeyDown?.Invoke();
        }
    }
}Code language: C# (cs)

ドキュメント:

UnityEvent | Unity スクリプトリファレンス [公式]

参考:

Unity で使えるイベント | ソフトライム

delegate

「デリゲート」とは、宣言された形式のメソッドへの参照を表す型である。関数ポインタを安全にラップするクラスとして実装されている。

ドキュメント:

デリゲート | Microsoft Learn [公式]

Delegate クラス | Microsoft Learn [公式]

event

「イベント」は、通知をトリガーすることでコールバックを呼び出すクラスのメンバーである。

  • event キーワードを用いて、メンバーを宣言する。

ドキュメント:

イベント | Microsoft Learn [公式]

event キーワード | Microsoft Learn [公式]

System.Action

  • System.Action 予め定義されたデリゲート型
  • System.Action<T> 引数を1つ取るメソッドをカプセル化したデリゲート型

ドキュメント:

System.Action | Microsoft Learn [公式]

System.Action<T> | Microsoft Learn [公式]

参考:

Action と Func についてまとめる | 73.Log

Action – 定義する方法/使用する方法 | GENESIS BLOG

まとめ

デリゲート/イベント/ラムダ式/非同期処理をまとめて考える | SSKR

デリゲートとイベントと UnityAction の使い方 | Unity 入門の森

Unity/C#でのデリゲート/イベントのつかいかた | Aizu-Progressive XR Lab Blog

Tips

Unity におけるイベント駆動プログラミングの小技 | RYURYU

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA