private void FixedUpdate() { if (movingPlayer) { Vector2 direction2D; Animator animator; for (int i = 0; i < playersNumber; i++) { if (players[i] != null) { if (!checkpointReached[i]) { if (players[i] == myPlayer) { Vector3 directionToCheckpoint = (positionCheckpoints[i].transform.position - players[i].transform.position).normalized; direction2D = new Vector2(directionToCheckpoint.x, directionToCheckpoint.y); players[i].GetComponent <PlayerControllerMap>().Move(directionToCheckpoint); animator = players[i].GetComponent <Animator>(); animator.SetFloat("Speed", direction2D.SqrMagnitude()); animator.SetFloat("Horizontal", direction2D.x); } } } else { checkpointReached[i] = true; } } if (checkpointReached.All(x => x)) { if (!finalBoss) { direction2D = Vector2.up; myPlayer.GetComponent <PlayerControllerMap>().Move(Vector3.up); Debug.Log(myPlayer); Debug.Log(myPlayer.GetComponent <PhotonView>().ViewID); animator = myPlayer.GetComponent <Animator>(); animator.SetFloat("Speed", direction2D.SqrMagnitude()); animator.SetFloat("Horizontal", direction2D.x); if (myPlayer.transform.position.y >= finalPosition.position.y) { finalBoss = true; } } else { if (!finalCheckpointReached.All(x => x)) { for (int i = 0; i < playersNumber; i++) { if (players[i] != null) { if (Vector3.Distance(players[i].transform.position, finalCheckpoints[i].transform.position) > 0.1f && !finalCheckpointReached[i]) { if (players[i] == myPlayer) { Vector3 directionToCheckpoint = (finalCheckpoints[i].transform.position - players[i].transform.position).normalized; direction2D = new Vector2(directionToCheckpoint.x, directionToCheckpoint.y); players[i].GetComponent <PlayerControllerMap>().Move(directionToCheckpoint); animator = players[i].GetComponent <Animator>(); animator.SetFloat("Speed", direction2D.SqrMagnitude()); animator.SetFloat("Horizontal", direction2D.x); } } else { finalCheckpointReached[i] = true; if (players[i] == myPlayer) { animator = players[i].GetComponent <Animator>(); animator.SetFloat("Speed", 0); animator.SetFloat("Horizontal", (boss.transform.position - players[i].transform.position).x); } } } } } if (!setUpFinal) { boss.ActivateAnimator(this); myPlayer.GetComponent <PlayerControllerMap>().SetTimer(999, true); endgameVCAM.gameObject.SetActive(true); setUpFinal = true; } if (isBossExploded) { direction2D = Vector2.up; myPlayer.GetComponent <PlayerControllerMap>().SetTimer(0, false); myPlayer.GetComponent <PlayerControllerMap>().Move(Vector3.up); animator = myPlayer.GetComponent <Animator>(); animator.SetFloat("Speed", direction2D.SqrMagnitude()); animator.SetFloat("Horizontal", direction2D.x); } } } } }