使い方
delegate
: デリゲート型を宣言する構文キーワードevent
: クラスメンバーを宣言する構文キーワード/通知をトリガーすることでコールバックを呼び出すSystem.Action
: 予め定義されたデリゲート型UnityAction
:UnityEvent
で使用される引数なしのデリゲートUnityEvent
:MonoBehaviour
クラスで用いるイベント型
参考:
Unity コールバックの受け取り方あれこれ – Qiita
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 スクリプトリファレンス [公式]
参考:
delegate
「デリゲート」とは、宣言された形式のメソッドへの参照を表す型である。関数ポインタを安全にラップするクラスとして実装されている。
ドキュメント:
Delegate クラス | Microsoft Learn [公式]
event
「イベント」は、通知をトリガーすることでコールバックを呼び出すクラスのメンバーである。
event
キーワードを用いて、メンバーを宣言する。
ドキュメント:
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