事件中心
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class EventCenter
{
private static EventCenter instance;
public static EventCenter Instance
{
get
{
if (instance == null)
instance = new EventCenter();
return instance;
}
}
private Dictionary<string, UnityAction<object>> eventDic = new Dictionary<string, UnityAction<object>>();
/// <summary>
/// 添加事件
/// </summary>
/// <param name="name"></param>
/// <param name="action"></param>
public void AddEventListerer(string name, UnityAction<object> action)
{
if (eventDic.ContainsKey(name))
{
eventDic[name] += action;
}
else
{
eventDic.Add(name, action);
}
}
/// <summary>
/// 触发事件
/// </summary>
/// <param name="name"></param>
public void EventTrigger(string name,object info)
{
if (eventDic.ContainsKey(name))
{
eventDic[name].Invoke(info);
}
}
/// <summary>
/// 删除事件
/// </summary>
/// <param name="name"></param>
/// <param name=""></param>
/// <param name="action"></param>
public void RemoveEventListerer(string name,UnityAction<object> action)
{
if (eventDic.ContainsKey(name))
eventDic[name] -= action;
}
/// <summary>
/// 清空事件中心,场景切换时使用
/// </summary>
public void Clear()
{
eventDic.Clear();
}
}

浙公网安备 33010602011771号