|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using XWFramework.Tools;
|
|
|
|
|
namespace XWFramework.Events
|
|
|
|
|
{
|
|
|
|
|
public class EventManager : MonoSingleton<EventManager>
|
|
|
|
|
{
|
|
|
|
|
protected override void Awake()
|
|
|
|
|
{
|
|
|
|
|
base.Awake();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
#region <20>в<EFBFBD><D0B2><EFBFBD>
|
|
|
|
|
public delegate void hasParamFun(params object[] args);
|
|
|
|
|
Dictionary<string, hasParamFun> hasParamEvents = new Dictionary<string, hasParamFun>();
|
|
|
|
|
|
|
|
|
|
public void register(string name, hasParamFun callback)
|
|
|
|
|
{
|
|
|
|
|
if (!hasParamEvents.ContainsKey(name))
|
|
|
|
|
{
|
|
|
|
|
hasParamEvents.Add(name, callback);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
hasParamEvents[name] += callback;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void emit(string name, params object[] args)
|
|
|
|
|
{
|
|
|
|
|
if (hasParamEvents.ContainsKey(name))
|
|
|
|
|
{
|
|
|
|
|
hasParamEvents[name](args);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Debug.Log("û<><C3BB>" + name + "<22>¼<EFBFBD>");
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
#region <20><EFBFBD><DEB2><EFBFBD>
|
|
|
|
|
public delegate void noParamFun();
|
|
|
|
|
Dictionary<string, noParamFun> noParamEvents = new Dictionary<string, noParamFun>();
|
|
|
|
|
|
|
|
|
|
public void register(string name, noParamFun callback)
|
|
|
|
|
{
|
|
|
|
|
if (!noParamEvents.ContainsKey(name))
|
|
|
|
|
{
|
|
|
|
|
noParamEvents.Add(name, callback);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
noParamEvents[name] = callback;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void emit(string name)
|
|
|
|
|
{
|
|
|
|
|
if (noParamEvents.ContainsKey(name))
|
|
|
|
|
{
|
|
|
|
|
noParamEvents[name]();
|
|
|
|
|
}
|
|
|
|
|
//Debug.Log("û<><C3BB>" + name + "<22>¼<EFBFBD>");
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
public bool ContainKey(string value)
|
|
|
|
|
{
|
|
|
|
|
return hasParamEvents.ContainsKey(value) || noParamEvents.ContainsKey(value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|