【Unity】UnityのActionとUnityEventについて。別オブジェクトのスクリプトを実行する。
別のオブジェクトのスクリプトを実行できるActionとUnityEventについて使い方をまとめます。
簡単な違い
どちらも他のオブジェクトをスクリプトを保持し、そのメソッドを呼び出すことができる点は同じですが、下記のような違いがあります。
Action
・C#言語のデリゲートの一種
・多少早い。
UnityEvent
・Unityの独自のイベントシステムでUnityエディター内で簡単に操作可能。
・複数のメソッドを登録し、実行できる。
個人的にUnityEventはエディター上で簡単に操作できたので、気に入ってます。
Actionのスクリプト例
Actionを使用するためには下記のusingディレクティブを追加する必要があります。
using System;
Actionはソース上で登録したメソッドを他でも使えるようにできます。
public class MyClass : MonoBehaviour
{
public Action myAction;
private void Start()
{
// Actionを設定する
myAction = MyMethod;
// Actionを実行する
myAction.Invoke();
}
private void MyMethod()
{
Debug.Log("MyMethodが呼ばれました");
}
}
UnityEventのスクリプト例
UnityEventを使用するためには下記のusingディレクティブを追加する必要があります。
using UnityEngine.Events;
UnityEventはソース上でUnityエディター上で登録したメソッドを他でも使えるようにできます。
public UnityEvent MyEvent;
public void ButtonClick()
{
MyEvent.Invoke();
}
上記のように UnityEvent を public で定義すると、インスペクターに設定できるような項目が現れます。
コメント
0 件のコメント :
コメントを投稿