void Update() { while (gameEvtQueue.Count > 0) { gGameEvent evt = gameEvtQueue.Dequeue(); if (gameEvtCallbackMap.ContainsKey(evt.type)) { gameEvtCallbackMap [evt.type] (evt); } } while (netMsgQueue.Count > 0) { gNetMsg msg = netMsgQueue.Dequeue(); Debug.Log("Message center: get message of type:" + msg.type.ToString()); if (netMsgCallbackMap.ContainsKey(msg.type)) { netMsgCallbackMap [msg.type] (msg); } else { Debug.Log("Message center: no handler for type: " + msg.type.ToString()); } } }
public static void OnReciveGameEvent(gGameEvent evt) { lock (gameEvtQueue) { gameEvtQueue.Enqueue(evt); } }