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); }
void Start() { EveryPlayer everyPlayer = EveryPlayer.Load(xmlFile); Debug.Log("Player1's level is " + EveryPlayer.enemy.Level); }