イベントの発行

イベントを起こす側。

using UnityEngine.Events;
public class DeleteObject : MonoBehaviour {
    public UnityEvent OnDestroyed = new UnityEvent();
    private void OnDestroy(){
        Debug.Log("Destroyed");
        OnDestroyed.Invoke();
    }
}

イベントが起きたことを受け取って続きの処理を実行する側

イベントを起こす側のクラスのメンバ変数に設定した UnityEvent型の変数にAddListenerでイベントを登録する。

using UnityEngine;
public class Checker : MonoBehaviour {
    public DeleteObject target;

    void OnEnable()
    {
        target.OnDestroyed.AddListener(()=>{
            Debug.Log("targetがDestroyされました");
       // ここに処理を追加
        });
    }
}

参考サイト

【Unity】オブジェクトが消えた瞬間を察知してイベントを受け取る | わたぶろぐ
Unityではいろんな条件に対してイベントを飛ばすことが出来ます。今回はGameObjectが消されたタイミングにイベントを呼び出す処理をどのように実装するかを解説したいと思いま...

コメント

タイトルとURLをコピーしました