Beispiel #1
0
    void Update()
    {
        if (_gameManager == null)
        {
            return;
        }

        WSClient.GetGameState();

        var frameDelta = WSClientState.GameState.FrameCount - _lastFrameCount;

        if (frameDelta <= 0)
        {
            return;
        }
        WSClientState.GameState.FrameCount = _lastFrameCount;

        var gameState = WSClientState.GameState;

        _gameManager.ServerGameTime = gameState.GameTime;

        // ball
        _gameManager.Ball.transform.position = gameState.BallPosition;
        _gameManager.Ball.GetComponent <Rigidbody2D>().velocity = gameState.BallVelocity;

        // players
        var serverPlayers = gameState.PlayersState;

        if (gameState.PlayersState != null)
        {
            var clientPlayers = _gameManager.Players;
            foreach (var serverPlayer in serverPlayers)
            {
                if (!clientPlayers.ContainsKey(serverPlayer.DeviceId))
                {
                    continue;
                }
                LoadPlayer(clientPlayers[serverPlayer.DeviceId], serverPlayer, frameDelta);
            }
        }
    }