AlpacaTech Blog

備忘録。ゲーム作りたい系草食動物

自前のスクリプトでもInspector上でイベント登録した物を実行したい

UI.Buttonでボタン押したときに実行されるイベント登録のこれ

f:id:alpacatech:20170915191719p:plain

 押したときに、単純な引数1個までのメソッドなら呼び出せて便利。

 

自分のスクリプトでも何か行った時に、

登録しておいたものを実行するようにして汎用性持たせたい時がたまにあります。

 

UnityEventというクラスですぐに実装できます。

 

・変数追加

[SerializeField]

private UnityEngine.Events.UnityEvent OnFooEvent;

 

f:id:alpacatech:20170915192629p:plain

 

で、Inspectorに出てきました。

 

実行は、Invoke()です。

以下は、Updateごとに実行されます。 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EventTest : MonoBehaviour {

    [SerializeField]
    private UnityEngine.Events.UnityEvent OnFooEvent;

    void Update () {
        //  登録しておいたものが実行される
        OnFooEvent.Invoke();
    }

}

f:id:alpacatech:20170915193332p:plain

f:id:alpacatech:20170915193348p:plain

 

 

詳しいことは、

うら干物書きさんが細かく書いてました。

www.urablog.xyz

 

 

 

 

 定期的に忘れるし調べ方もよくわからないのでメモ。