Exemple #1
0
        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);
        }