/// <summary> /// 帧更新 /// </summary> public void Update() { while (m_ListenedEvent.IsEmpty() == false) { System.Object objInfo = null; if (m_ListenedEvent.Pop(ref objInfo) == false || objInfo == null) { continue; } CEventInfo info = objInfo as CEventInfo; if (info == null) { continue; } UInt32 uEventId = info.GetEventId(); System.Object objParam = info.GetEventParam(); m_EventInfoPool.GiveBackObject(info); CHandleInfo handleInfo = null; if (m_EventActionList.QuickFind(uEventId, ref handleInfo) == false || handleInfo == null) { continue; } bool bTriggerRet = handleInfo.TriggerHandle(objParam); if (bTriggerRet == false) { BTDebug.Warning(string.Format("Trigger Event:{0} With Param:{2} Failed", uEventId, objParam), "ACTION"); } } }
/// <summary> /// 为事件移除一个回调 /// </summary> /// <param name="uEventId"></param> /// <param name="handle"></param> /// <returns></returns> public bool RemoveHandle(UInt32 uEventId, HandleObjectAction handle) { CHandleInfo handleInfo = null; if (m_EventActionList.QuickFind(uEventId, ref handleInfo) == false || handleInfo == null) { return(false); } if (handleInfo.RemoveHandle(handle) == false) { return(false); } return(true); }
/// <summary> /// 注册事件回调信息 /// </summary> /// <param name="uEventId"></param> /// <param name="tArgsType"></param> /// <returns></returns> public bool RegisterAction(UInt32 uEventId, Type tArgsType, string strName = "") { CHandleInfo handInfo = null; if (m_EventActionList.QuickFind(uEventId, ref handInfo) == true) { return(false); } handInfo = new CHandleInfo(); handInfo.SetArgType(tArgsType); if (string.IsNullOrEmpty(strName) == true) { strName = "Event_" + uEventId.ToString(); } handInfo.SetName(strName); if (m_EventActionList.Add(uEventId, handInfo) == false) { return(false); } return(true); }