public void RemoveListener(eSimpleEventID eventId, EventDelegate <GameEvent> del) { if (mSimpleEvents[(uint)eventId] != null) { mSimpleEvents[(uint)eventId] -= del; } }
public void AddListener(eSimpleEventID eventId, EventDelegate <GameEvent> del) { if (mSimpleEvents[(uint)eventId] == null) { mSimpleEvents[(uint)eventId] = delegate { }; mSimpleEvents[(uint)eventId] += del; } else { //防止重复添加委托函数 mSimpleEvents[(uint)eventId] -= del; mSimpleEvents[(uint)eventId] += del; } }
/// <summary> /// 根据eventid直接分发事件 /// </summary> /// <param name="eventId"></param> public void Raise(eSimpleEventID eventId) { EventDelegate <GameEvent> onEventHandlers = mSimpleEvents[(uint)eventId]; if (onEventHandlers != null) { GameEvent e; mGameEvents.TryGetValue((uint)eventId, out e); if (e == null) { e = new GameEvent(); e.EventID = eventId; mGameEvents.Add((uint)eventId, e); } onEventHandlers(e); } }