Ejemplo n.º 1
0
    // 取消息队列并执行(区分同步和异步事件的执行方式)
    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);
        }
    }
Ejemplo n.º 2
0
    // 延迟处理消息
    private IEnumerator DelayExecMessage(Loop.Message msg, float delay)
    {
        yield return(new WaitForSeconds(delay));

        msg.ExecHanlders();
    }