コード例 #1
0
    public void PlayerMove(Int32 x, Int32 z, Int32 ry, Int32 uid, Int32 state)
    {
        // 客户端发送move信息
        msgtemp = new MSG_PLAYER_MOVE();
        Byte[] temp = new byte[1024];
        using (CodedOutputStream cos = new CodedOutputStream(temp))
        {
            //Debug.LogError("Send mov: x = " + x + ", z = " + z + ".");

            msgtemp.Ry       = ry;
            msgtemp.X        = x;
            msgtemp.Z        = z;
            msgtemp.Playerid = uid;
            msgtemp.State    = state;
            msgtemp.WriteTo(cos);
            //Debug.LogError("-------------------------state   " + state);

            //data = cos.to.ToArray();
        }
        Buffers.Encode(data, 1006, uid, msgtemp.CalculateSize()); // 1006 -> player move
        for (int i = 0; i < msgtemp.CalculateSize(); i++)
        {
            data[sizeof(Int32) * 3 + i] = temp[i];
        }
        net_manager.Send(data, 0, sizeof(Int32) * 3 + msgtemp.CalculateSize(), out se);
    }
コード例 #2
0
    public void FixedUpdate()
    {
        if (net_manager.Connected())
        {
            net_manager.Receive(buffer_recv, out se);
        }
        //Debug.Log("!!!!!!" + buffer_recv.GetDataSize() + " " + buffer_recv.GetStart() + " " + buffer_recv.GetEnd());
        while (true)
        {
            if (buffer_recv.IsHeaderReadable(3 * sizeof(Int32)) == false)
            {
                break;
            }

            msgInfo = buffer_recv.Decode();

            if (buffer_recv.IsHeaderAndPayloadReadable(3 * sizeof(Int32) + msgInfo.GetPacLen()) == false)
            {
                break;
            }


            buffer_recv.GetPayload(msgInfo);
            switch (msgInfo.GetMsgID())
            {
            case 1006:
                msgtemp = MSG_PLAYER_MOVE.Parser.ParseFrom(msgInfo.GetPayload());
                Debug.LogError("Recv mov: x = " + msgtemp.X + ", z = " + msgtemp.Z + ".    ry = " + msgtemp.Ry);

                update_player(msgtemp.Playerid, ((float)msgtemp.X) / 100000, ((float)msgtemp.Z) / 100000, ((float)msgtemp.Ry) / 100000, msgtemp.State);
                break;

            case 1008:
                msgtemp_register_recv = MSG_PLAYER_REGISTER.Parser.ParseFrom(msgInfo.GetPayload());
                Debug.LogError("Recv reg: x = " + msgtemp_register_recv.X + ", z = " + msgtemp_register_recv.Z + ".    Ry = ");

                update_player(msgtemp_register_recv.Playerid, ((float)msgtemp_register_recv.X) / 100000, ((float)msgtemp_register_recv.Z) / 100000, ((float)msgtemp_register_recv.Ry) / 100000, 0);
                break;
            }
        }



        m_PlayerSelf.FixedUpdate();
    }