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)); } }
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); } }
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(); } }
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(); }