void OnDisconnect(int i) { if (m_Players.Count > 0) { for (int k = 0; k < m_Players.Count; k++) { ServerPlyrLeftMsg m = new ServerPlyrLeftMsg(); // may have to instantiate a new player for the message m.player = m_Players[i]; SendToClient(JsonUtility.ToJson(m), m_Connections[k]); } } Debug.Log("Client disconnected from server"); m_Connections[i] = default(NetworkConnection); m_Players.RemoveAt(i); }
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 playerDisconnect(ServerPlyrLeftMsg plyrLeftMsg) { players.Remove(plyrLeftMsg.player.id); Debug.Log("Player Disconnected!"); }