void OnReceived(IAsyncResult result)
    {
        // this is what had been passed into BeginReceive as the second parameter:
        UdpClient socket = result.AsyncState as UdpClient;

        // points towards whoever had sent the message:
        IPEndPoint source = new IPEndPoint(0, 0);

        // get the actual message and fill out the source:
        byte[] message = socket.EndReceive(result, ref source);

        // do what you'd like with `message` here:
        string returnData = Encoding.ASCII.GetString(message);

        Debug.Log("Got this: " + returnData);

        latestMessage = JsonUtility.FromJson <Message>(returnData);
        try{
            switch (latestMessage.cmd)
            {
            case commands.NEW_CLIENT:
                NPlayer = JsonUtility.FromJson <NewPlayer>(returnData);
                Joined  = true;
                break;

            case commands.UPDATE:
                lastestGameState = JsonUtility.FromJson <GameState>(returnData);
                break;

            case commands.DISCONNECT:
                DCP = JsonUtility.FromJson <DCPlayer>(returnData);
                break;

            case commands.OLD_CLIENT:
                connectedPlayers = JsonUtility.FromJson <EveryPlayer>(returnData);
                break;

            default:
                Debug.Log("Error");
                break;
            }
        }
        catch (Exception e) {
            Debug.Log(e.ToString());
        }

        // schedule the next receive operation once reading is done:
        socket.BeginReceive(new AsyncCallback(OnReceived), socket);
    }
Exemple #2
0
    void Start()
    {
        EveryPlayer everyPlayer = EveryPlayer.Load(xmlFile);

        Debug.Log("Player1's level is " + EveryPlayer.enemy.Level);
    }