Unityでeventを使用する

2020年7月26日  2020年10月3日 
今日はC#のeventの使い方を勉強しました。
delegateと何が違うのかというと、eventは定義したクラスでしか実行できないようです。
カプセル化の観点から今後はeventを使った方が良さそうですね。

Unityでeventを使用する

Unityでeventを作成する方法は下記の通りです。
ほとんどdelegateの実装と変わらないです。

using UnityEngine;

public class EventSample : MonoBehaviour
{
    public delegate void ButtonClick();
    public event ButtonClick buttonClick;

    public void Click()
    {
        if (buttonClick != null)
        {
            buttonClick();
        }
    }
}

eventの使用方法は下記の通りです。
こちらもほとんどdelegateの使用方法と変わらないですね。

using UnityEngine;

public class Sample : MonoBehaviour
{
    [SerializeField] private EventSample eventSample;

    private void Start()
    {
        eventSample.buttonClick += DoTask;
    }

    private void DoTask()
    {
        Debug.Log("Button Click!");
    }
}

今までdelegateで記述していた部分は、今度からeventで実装してみようと思います。

環境

Windows 10 Pro
Unity 2019.4

ー記事をシェアするー
B!
タグ

コメント

このブログを検索

自己紹介

自分の写真
yayao
Unityを使って、モバイルゲームを作っています。
人気の投稿