UnityでPublisher Subscriberパターンを使用する

2020年8月25日  2020年10月3日 
Unity Learnで勉強していたら便利そうなパターンがあったのでメモっておきます。
その名は「Publisher Subscriberパターン」。
今度ゲームを作るときに試してみたいです。

Publisher Subscriberパターンを使用する

まずはEventBrokerクラスを作成します。
このクラスの役割はPublisherクラスとSubscriberクラスの架け橋です。
このクラスで定義したイベントをSubscriberクラスで実装して、Publisherクラスから呼び出します。

EventBroker.cs
using System;

public class EventBroker
{
    public static event Action DoSomeTask;

    public static void CallDoSomeTask()
    {
        if (DoSomeTask != null)
        {
            DoSomeTask();
        }
    }
}

次はPublisherクラスを実装します。
これはEventBrokerに定義したイベントを呼び出すだけです。

Publisher.cs
using UnityEngine;

public class Publisher : MonoBehaviour
{
    public void Publish()
    {
        EventBroker.CallDoSomeTask();
    }
}

最後にSubscriberクラスを実装します。
このクラスはEventBrokerに定義したイベントに処理を追加します。

Subscriber.cs
using UnityEngine;

public class Subscriber : MonoBehaviour
{
    public void OnEnable()
    {
        EventBroker.DoSomeTask += DoTask;
    }

    public void OnDisable()
    {
        EventBroker.DoSomeTask -= DoTask;
    }

    public void DoTask()
    {
        Debug.Log("Do Task");
    }
}

このパターンはかなり使えそうな気がしています。
今度作成するゲームで色々試してみようと思います。

環境

Windows 10 Pro
Unity 2019.4

参考サイト

The Observer Pattern - Unity Learn


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

コメント

このブログを検索

自己紹介

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