public void update()
    {
        float time = m_time + Time.unscaledDeltaTime;

        int maxFrameId = (int)(time * FrameSync.LOGIC_FPS);

        if (maxFrameId == m_maxFrameId)
        {
            m_time = time;
            _processCurrentFrame(m_time - m_maxFrameId / (float)FrameSync.LOGIC_FPS);
        }
        else
        {
            RAL.LogicFrame msg;
            while (_playBackList.pop(maxFrameId, out msg))
            {
                _processNewFrame(msg, time - msg.frameId / (float)FrameSync.LOGIC_FPS);
            }

            m_maxFrameId = maxFrameId;
            m_time       = time;
        }
    }