public static void RegisterCallback(ICallbackBase callback, int iCallback) { List <ICallbackBase> callbackList; if (m_RegisteredCallbacks.TryGetValue(iCallback, out callbackList)) { callbackList.Add(callback); } else { callbackList = new List <ICallbackBase>(); callbackList.Add(callback); m_RegisteredCallbacks.Add(iCallback, callbackList); } }
public static void UnRegisterCallback(ICallbackBase callback, int iCallback) { List <ICallbackBase> callbackList; if (m_RegisteredCallbacks.TryGetValue(iCallback, out callbackList)) { foreach (ICallbackBase c in callbackList) { if (c == callback) { callbackList.Remove(c); break; } } if (callbackList.Count == 0) { m_RegisteredCallbacks.Remove(iCallback); } } }