Gameplay Ingredients是一组用于 Unity 游戏的运行时和编辑器工具:一组脚本的集合,可在制作游戏和原型时简化简单的任务。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

48 行
1.3 KiB

using System;
using System.Collections.Generic;
using UnityEngine;
namespace GameplayIngredients
{
public static class Messager
{
private static Dictionary<string, Action> m_RegisteredEvents;
static Messager()
{
m_RegisteredEvents = new Dictionary<string, Action>();
}
public static void RegisterEvent(string eventName, Action action)
{
if (!m_RegisteredEvents.ContainsKey(eventName))
m_RegisteredEvents.Add(eventName, action);
else
m_RegisteredEvents[eventName] += action;
}
public static void UnregisterEvent(string eventName, Action action)
{
var currentEvent = m_RegisteredEvents[eventName];
currentEvent -= action;
if (currentEvent == null)
m_RegisteredEvents.Remove(eventName);
}
public static void Send(string eventName)
{
Debug.Log(string.Format("[MessageManager] Broadcast: {0}", eventName));
if (m_RegisteredEvents.ContainsKey(eventName))
{
m_RegisteredEvents[eventName]();
}
else
{
Debug.Log("[MessageManager] could not find any listeners for event : " + eventName);
}
}
}
}