// 取消息队列并执行(区分同步和异步事件的执行方式) public IEnumerator PopAndExecMessage() { if (!Loop.MessageManager.IsMessageQueueEmpty()) { Loop.Message currentMessage = Loop.MessageManager.PopMessageQueue(); Debug.Log("Pop Message Queue and execute MessageHandler : " + currentMessage.Type); float cd = currentMessage.DelayPeriod; if (cd != 0) { yield return(StartCoroutine(DelayExecMessage(currentMessage, cd))); } else { currentMessage.ExecHanlders(); } } else { yield return(null); } }
// 延迟处理消息 private IEnumerator DelayExecMessage(Loop.Message msg, float delay) { yield return(new WaitForSeconds(delay)); msg.ExecHanlders(); }