public ActionEventDispatcher RegisterEvent(ActionEnums.ActionID actionID, System.Action action) { if (_PoolEvent.TryGetValue(ActionEnums.GetActionString(actionID), out paramOut)) { paramOut += delegate(object _a) { action(); }; _PoolEvent[ActionEnums.GetActionString(actionID)] = paramOut; } else { paramOut += delegate(object _a) { action(); }; _PoolEvent.Add(ActionEnums.GetActionString(actionID), paramOut); } LogGame.Log(string.Format("[Action Manager] Register the new event with ID: {0}", ActionEnums.GetActionString(actionID))); return(this); }
public static ActionEventDispatcher RegisterActionEvent(this MonoBehaviour mono, ActionEnums.ActionID actionID, System.Action callback) { if (ReferenceEquals(ActionEventDispatcher.InstanceAwake(), null)) { LogGame.Error("[Action Event] Action Event Dispatcher Is Null!"); return(null); } return(ActionEventDispatcher.Instance.RegisterEvent(actionID, callback));; }
public static ActionEventDispatcher PostActionEvent(this MonoBehaviour mono, ActionEnums.ActionID actionID, object param = null) { if (ReferenceEquals(ActionEventDispatcher.InstanceAwake(), null)) { LogGame.Error("[Action Event] Action Event Dispatcher Is Null!"); return(null); } return(ActionEventDispatcher.Instance.PostEvent(actionID, param));; }
public ActionEventDispatcher RemoveEvent(ActionEnums.ActionID actionID, System.Action <object> action) { if (_PoolEvent.TryGetValue(ActionEnums.GetActionString(actionID), out paramOut)) { paramOut -= action; _PoolEvent[ActionEnums.GetActionString(actionID)] = paramOut; LogGame.Log(string.Format("[Action Manager] Remove the event with ID: {0}", ActionEnums.GetActionString(actionID))); } else { LogGame.Log(string.Format("[Action Manager] Not Found the event with ID: {0}", ActionEnums.GetActionString(actionID))); } return(this); }
public ActionEventDispatcher PostEvent(ActionEnums.ActionID actionID, object param) { if (!_PoolEvent.TryGetValue(ActionEnums.GetActionString(actionID), out paramOut)) { return(this); } if (ReferenceEquals(paramOut, null)) { _PoolEvent.Remove(ActionEnums.GetActionString(actionID)); return(this); } paramOut(param); LogGame.Log(string.Format("[Action Manager] Post the event with ID: {0}", ActionEnums.GetActionString(actionID))); return(this); }