using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; public class GameManager : MonoBehaviour { public int lapAmount; public GameObject[] checkpoints; public GameObject[] players; [HideInInspector] public string[] playersFinished; int[] playerLaps; void Start() { // reset laps playerLaps = new int[players.Count()]; for (int i = 0; i < playerLaps.Count(); i++) { playerLaps[i] = 1; } } // Update is called once per frame void Update() { for (int i = 0; i < players.Count(); i++) { GameObject player = players[i]; if (playersFinished.Contains(player.name)) continue; bool isAI = true; if (player.GetComponent().enabled) isAI = false; if (isAI) { bool isFinished = player.GetComponent().isFinished; if (isFinished) { player.GetComponent().isFinished = false; playerLaps[i] += 1; } } else { int checkpointsCollected = player.GetComponent().checkpointsCollected; if (checkpointsCollected == checkpoints.Count()) { player.GetComponent().checkpointsCollected = 0; playerLaps[i] += 1; } } if (playerLaps[i] > lapAmount) { player.GetComponent().isKinematic = true; playersFinished.Append(player.name); print("\nPlayers finished:"); foreach (string pp in playersFinished) print(pp); } } } }