public void UpdateGame(UpdateResponseData data) { foreach (var mdlPlayer in data.players) { if (players.ContainsKey(mdlPlayer.id)) { var pos = new Vector2(mdlPlayer.x, mdlPlayer.y); players[mdlPlayer.id].UpdatePlayer(pos, mdlPlayer.r, mdlPlayer.s, mdlPlayer.h); continue; } var player = new MdlPlayer(mdlPlayer.id, mdlPlayer.h); players.Add(mdlPlayer.id, player); NewPlayerSpawned?.Invoke(player); } var existingPlayers = players.Keys.ToList(); foreach (var playerId in existingPlayers) { if (data.players.Any(p => p.id == playerId)) { continue; } players.Remove(playerId); PlayerRemoved?.Invoke(playerId); } }
private void OnServerUpdateMethod(UpdateResponseData data) { if (_gameController == null) { Debug.Log("Error _gameController null:"); return; } _gameController.PlayersManager.UpdateGame(data); Debug.Log("OnServerUpdateMethod: " + data.Players[0].PlayerId); }