Exemplo n.º 1
0
    void FixedUpdate()
    {
        if (_sharedData != null && _sharedData.state != GameState.STARTED)
        {
            return;
        }
        // only let the local player control.
        if (isLocalPlayer)
        {
            movement             = Input.GetAxisRaw("Horizontal");
            rigidbody2d.velocity = new Vector2(movement, 0) * (moveSpeed * additionMoveSpeed) * Time.fixedDeltaTime;

            if (oldMovement != movement)
            {
                PlayerNetworkControl player = NetworkClient.connection.identity.GetComponent <PlayerNetworkControl>();
                player.CmdUpdateMovementState(movement);
                oldMovement = movement;
            }

            // update for other player
            if (rigidbody2d.velocity.x != 0)
            {
                spriteRenderer.flipX = rigidbody2d.velocity.x < 0;
            }
            animator.SetFloat("Movement", Mathf.Abs(rigidbody2d.velocity.x));
        }
        else
        {
            //Debug.Log("Other player Movement: " + movement);
            spriteRenderer.flipX = movement < 0;
            animator.SetFloat("Movement", Mathf.Abs(movement));
        }
    }
Exemplo n.º 2
0
 public void OnPlayerPointUpdated(PlayerNetworkControl player, int points)
 {
     if (player.hasAuthority)
     {
         uiPlayerPoints.text = "Player Points: " + points.ToString();
     }
 }
    public override void OnServerAddPlayer(NetworkConnection conn)
    {
        if (state >= GameState.STARTING)
        {
            return;
        }

        // add player at correct spawn position
        Transform  start  = numPlayers == 0 ? playerASpawnPoint : playerBSpawnPoint;
        GameObject player = Instantiate(playerPrefab, start.position, start.rotation);

        player.transform.parent = transform;
        // init player
        PlayerNetworkControl playerController = player.GetComponent <PlayerNetworkControl>();

        // assign slot
        playerController.slot           = usedSlot["A"] ? "B" : "A";
        usedSlot[playerController.slot] = true;
        playerController.Initialize();
        players.Add(playerController.slot, playerController);

        NetworkServer.AddPlayerForConnection(conn, player);


        // Start game if two players
        if (numPlayers == 2 && state < GameState.STARTING)
        {
            state = GameState.STARTING;
            // send message to all player that game state is changed to start
            sharedData.state       = state;
            sharedData.startInTime = 3f;
            InvokeRepeating(nameof(OnUpdateCountDown), 1, 1);
        }
    }
Exemplo n.º 4
0
    public void UpdateMaterialID()
    {
        MeshRenderer[] boxChildren = GetComponentsInChildren <MeshRenderer>();

        Material[] boxMats = boxChildren[0].materials;

        if (owner != null)
        {
            PlayerNetworkControl playerNetworkControl = owner.GetComponent <PlayerNetworkControl>();
            materialIndex            = playerNetworkControl.index;
            boxMats[0]               = playerNetworkControl.BoxMaterials[materialIndex];
            boxChildren[0].materials = boxMats;
        }
        else
        {
            UnattendedBox();
        }
    }
Exemplo n.º 5
0
    public void OnGameResultChanged(GameResult old, GameResult gameResult)
    {
        if (isServer)
        {
            Debug.Log("Called from server");
        }

        PlayerNetworkControl player = NetworkClient.connection.identity.GetComponent <PlayerNetworkControl>();

        if (player.slot == "A")
        {
            uiResultText.text = gameResult.playerAPoint > gameResult.playerBPoint ? "You Win" : (gameResult.playerAPoint == gameResult.playerBPoint ? "Match Draw" : "You Lose");
        }
        else
        {
            uiResultText.text = gameResult.playerAPoint < gameResult.playerBPoint ? "You Win" : (gameResult.playerAPoint == gameResult.playerBPoint ? "Match Draw" : "You Lose");
        }
        uiPlayerAPoints.text = gameResult.playerAPoint < 0 ? "Leaved" : Mathf.RoundToInt(gameResult.playerAPoint).ToString();
        uiPlayerBPoints.text = gameResult.playerBPoint < 0 ? "Leaved" : Mathf.RoundToInt(gameResult.playerBPoint).ToString();
    }