コード例 #1
0
    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);
    }
コード例 #2
0
    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;
        }
    }
コード例 #3
0
 void playerDisconnect(ServerPlyrLeftMsg plyrLeftMsg)
 {
     players.Remove(plyrLeftMsg.player.id);
     Debug.Log("Player Disconnected!");
 }