private void SendFrame()
            {
                // 打包帧包
                var frame = new FramePackage
                {
                    Seq = m_NextSeq,
                };

                m_NextSeq++;
                foreach (var cmd in m_Commands)
                {
                    frame.Data.Add(new FramePackage.Types.Command
                    {
                        PlayerId  = cmd.playerId,
                        CommandId = cmd.cmdId,
                        Parameter = cmd.parm,
                    });
                }
                // 广播帧包
                foreach (var pair in m_Players)
                {
                    var player = pair.Value;
                    if (!player.isQuit)
                    {
                        ServerNetManager.Send(player.cfd, (Int16)ProtocType.FramePackage, frame);
                    }
                }
                // 清空缓存的命令
                m_Commands.Clear();
            }
    private void UpdateFrame(FramePackage framePackage)
    {
        seq = framePackage.Seq;
        var cmds = framePackage.Data;

        foreach (var cmd in cmds)
        {
            if (m_CmdListeners.ContainsKey((GameConst.CommandType)cmd.CommandId))
            {
                var listener = m_CmdListeners[(GameConst.CommandType)cmd.CommandId];
                listener.Invoke(cmd.PlayerId, cmd.Parameter);
            }
        }

        if (onLogicUpdate != null)
        {
            onLogicUpdate.Invoke(framePackage.Seq);
        }
    }
    public IEnumerator ExportFrame()
    {
        yield return(frameEnd);

        tex.Resize(arCamTexture.width, arCamTexture.height);
        tex.ReadPixels(new Rect(0, 0, arCamTexture.width, arCamTexture.height), 0, 0);
        tex.Apply();

        TextureScale.Bilinear(tex, tex.width / 2, tex.height / 2);

        byte[] frameBytes = tex.EncodeToJPG();

        //Debug to write texture into PNG
        //File.WriteAllBytes(Application.dataPath + System.String.Format( "/../SavedScreen{0}.jpg", frames), frameBytes);

        FramePackage dataToStream     = new FramePackage(System.DateTime.UtcNow, frames, frameBytes);
        string       JSONdataToStream = dataToStream.serialize();

        Debug.Log("Sending image to Kinesis");
        _C.PutRecord(JSONdataToStream, "FrameStream", (response) => {});
    }