public bool DispatchEvent(GameObject _target, string _eventName) { List <SuperFunctionUnit> unitList = DispatchEventReal <SuperFunctionCallBack0>(_target, _eventName); if (unitList != null) { for (int i = 0; i < unitList.Count; i++) { SuperFunctionUnit unit = unitList[i]; if (unit.isOnce) { RemoveEventListener(unit.index); } SuperFunctionCallBack0 cb = unit.callBack as SuperFunctionCallBack0; cb(unit.index); } unitList.Clear(); ReleaseList(unitList); return(true); } else { return(false); } }
public void DispatchEvent(GameObject _target, string _eventName) { if (dic2.ContainsKey(_target)) { Dictionary <string, List <SuperFunctionUnit> > tmpDic = dic2[_target]; if (tmpDic.ContainsKey(_eventName)) { List <SuperFunctionUnit> tmpList = tmpDic[_eventName]; LinkedList <SuperFunctionUnit> unitList = null; for (int i = 0; i < tmpList.Count; i++) { SuperFunctionUnit unit = tmpList[i]; if (unit.callBack is SuperFunctionCallBack0) { if (unitList == null) { unitList = new LinkedList <SuperFunctionUnit>(); } unitList.AddLast(unit); } } if (unitList != null) { LinkedList <SuperFunctionUnit> .Enumerator enumerator = unitList.GetEnumerator(); while (enumerator.MoveNext()) { if (enumerator.Current.isOnce) { RemoveEventListener(enumerator.Current.index); } SuperFunctionCallBack0 cb = enumerator.Current.callBack as SuperFunctionCallBack0; cb(enumerator.Current.index); } } } } }
public int AddEventListener(GameObject _target, string _eventName, SuperFunctionCallBack0 _callBack) { return(AddEventListener(_target, _eventName, _callBack, false)); }
public void RemoveEventListener(GameObject _target, string _eventName, SuperFunctionCallBack0 _callBack) { RemoveEventListenerReal(_target, _eventName, _callBack); }