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); }
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(); }