void OnData(DataStreamReader stream) { NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp); stream.ReadBytes(bytes); string recMsg = Encoding.ASCII.GetString(bytes.ToArray()); NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg); switch (header.cmd) { case Commands.HANDSHAKE: HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg); Debug.Log("Handshake message received!"); break; case Commands.PLAYER_UPDATE: PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg); Debug.Log("Player update message received!"); break; case Commands.SERVER_UPDATE: ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg); updatePlayerPos(suMsg); //Debug.Log("Server update message received!"); break; case Commands.PLAYER_JOINED: ServerNewPlyrMsg newPlyrMsg = JsonUtility.FromJson <ServerNewPlyrMsg>(recMsg); newPlayerJoined(newPlyrMsg); Debug.Log("Player joined message received!"); break; case Commands.PLAYER_LEFT: ServerPlyrLeftMsg plyrLeftMsg = JsonUtility.FromJson <ServerPlyrLeftMsg>(recMsg); playerDisconnect(plyrLeftMsg); Debug.Log("Player Left message received!"); break; default: Debug.Log("Unrecognized message received!"); break; } }
void OnConnect(NetworkConnection c) { NetworkObjects.NetworkPlayer temp = new NetworkObjects.NetworkPlayer(); temp.id = c.InternalId.ToString(); temp.timeOfLastMsg = Time.time; if (m_Players.Count > 0) { for (int i = 0; i < m_Players.Count; i++) { ServerNewPlyrMsg m = new ServerNewPlyrMsg(); m.player = temp; SendToClient(JsonUtility.ToJson(m), m_Connections[i]); } } m_Connections.Add(c); m_Players.Add(temp); Debug.Log("Accepted a connection"); }
void newPlayerJoined(ServerNewPlyrMsg newPlyrMsg) { players.Add(newPlyrMsg.player.id, (GameObject)Instantiate(playerCube)); Debug.Log("New player added!"); }