/// <summary> /// 取消订阅状态机事件。 /// </summary> protected void UnsubscribeEvent(int eventId, FsmEventHandler <T> eventHandler) { if (eventHandler == null) { Debug.LogError("状态机事件处理方法为空,无法取消订阅状态机事件"); } if (_eventHandlers.ContainsKey(eventId)) { _eventHandlers[eventId] -= eventHandler; } }
/// <summary> /// 响应状态机事件。 /// </summary> public void OnEvent(Fsm <T> fsm, object sender, int eventId, object userData) { FsmEventHandler <T> eventHandlers = null; if (_eventHandlers.TryGetValue(eventId, out eventHandlers)) { if (eventHandlers != null) { eventHandlers(fsm, sender, userData); } } }
protected void UnsubscribeEvent(int eventId, FsmEventHandler <T> eventHandler) { if (eventHandler == null) { Debug.LogError("State Event Is null ,Can't UnSubscribe StateEvent"); } if (m_EventHandlers.ContainsKey(eventId)) { m_EventHandlers[eventId] -= eventHandler; } }
/// <summary> /// 取消订阅有限状态机事件。 /// </summary> /// <param name="eventId">事件编号。</param> /// <param name="eventHandler">有限状态机事件响应函数。</param> protected void UnsubscribeEvent(int eventId, FsmEventHandler <T> eventHandler) { if (eventHandler == null) { throw new System.Exception("Event handler is invalid."); } if (m_EventHandlers.ContainsKey(eventId)) { m_EventHandlers[eventId] -= eventHandler; } }
/// <summary> /// 响应有限状态机事件时调用。 /// </summary> /// <param name="fsm">有限状态机引用。</param> /// <param name="sender">事件源。</param> /// <param name="eventId">事件编号。</param> /// <param name="userData">用户自定义数据。</param> internal void OnEvent(IFsm fsm, object sender, int eventId, object userData) { FsmEventHandler eventHandlers = null; if (m_EventHandlers.TryGetValue(eventId, out eventHandlers)) { if (eventHandlers != null) { eventHandlers(fsm, sender, userData); } } }
/// <summary> /// 取消订阅有限状态机事件。 /// </summary> /// <param name="eventId">事件编号。</param> /// <param name="eventHandler">有限状态机事件响应函数。</param> public void UnsubscribeEvent(int eventId, FsmEventHandler <T> eventHandler) { if (eventHandler == null) { throw new GameFrameworkException("Event handler is invalid."); } if (m_EventHandlers.ContainsKey(eventId)) { m_EventHandlers[eventId] -= eventHandler; } }
internal void Subscribe(FsmActiveChance fsmActiveChance, FsmEventHandler <T> fsmEvent) { int id = (int)fsmActiveChance; if (fsmEvents[id] == null) { fsmEvents[id] = fsmEvent; } else { fsmEvents[id] += fsmEvent; } }
/// <summary> /// 响应有限状态机事件时调用。 /// </summary> /// <param name="fsm">有限状态机引用。</param> /// <param name="sender">事件源。</param> /// <param name="eventId">事件编号。</param> /// <param name="userData">用户自定义数据。</param> internal bool OnEvent(IFsm <T> fsm, object sender, int eventId, object userData) { FsmEventHandler <T> eventHandlers = null; if (m_EventHandlers.TryGetValue(eventId, out eventHandlers)) { if (eventHandlers != null) { return(eventHandlers(fsm, sender, userData)); } } return(false); }
protected void SubscribeEvent(int eventId, FsmEventHandler <T> eventHandler) { if (eventHandler) { throw; } if (!m_EventHandlers.ContainsKey(eventId)) { m_EventHandlers[eventId] = eventHandler; } else { m_EventHandlers[eventId] += eventHandler; } }
protected void SubscribeEvent(int eventId, FsmEventHandler <T> handler) { if (handler == null) { throw new ArgumentNullException(nameof(handler)); } if (!_events.ContainsKey(eventId)) { _events[eventId] = handler; } else { _events[eventId] += handler; } }
/// <summary> /// 订阅状态机事件 /// </summary> /// <param name="eventId"></param> /// <param name="eventHandler"></param> protected void SubscribeEvent(int eventId, FsmEventHandler <T> eventHandler) { if (eventHandler == null) { Debug.LogError("状态机事件响应方法为空,无法订阅状态机事件!"); } if (!m_EventHandlers.ContainsKey(eventId)) { m_EventHandlers.Add(eventId, eventHandler); } else { m_EventHandlers[eventId] += eventHandler; } }
/// <summary> /// 订阅有限状态机事件。 /// </summary> /// <param name="eventId">事件编号。</param> /// <param name="eventHandler">有限状态机事件响应函数。</param> protected void SubscribeEvent(int eventId, FsmEventHandler <T> eventHandler) { if (eventHandler == null) { throw new AshException("Event handler is invalid."); } if (!m_EventHandlers.ContainsKey(eventId)) { m_EventHandlers[eventId] = eventHandler; } else { m_EventHandlers[eventId] += eventHandler; } }
/// <summary> /// 订阅有限状态机事件。 /// </summary> /// <param name="eventId">事件编号。</param> /// <param name="eventHandler">有限状态机事件响应函数。</param> protected void SubscribeEvent(int eventId, FsmEventHandler <T> eventHandler) { if (eventHandler == null) { Logger.LogError("Event handler is invalid."); } if (!mEventHandlers.ContainsKey(eventId)) { mEventHandlers[eventId] = eventHandler; } else { mEventHandlers[eventId] += eventHandler; } }
/// <summary> /// 订阅状态机事件。 /// </summary> protected void SubscribeEvent(int eventId, FsmEventHandler <T> eventHandler) { if (eventHandler == null) { Debug.LogError("状态机事件处理方法为空,无法订阅状态机事件"); } if (!_eventHandlers.ContainsKey(eventId)) { _eventHandlers[eventId] = eventHandler; } else { _eventHandlers[eventId] += eventHandler; } }
internal void UnSubscribe(FsmActiveChance fsmActiveChance, FsmEventHandler <T> fsmEvent) { int id = (int)fsmActiveChance; fsmEvents[id] -= fsmEvent; }
internal void UnSubscribeChange(int id, FsmEventHandler <T> fsmEventHandler) { changeEvents[id] -= fsmEventHandler; }