private void RestartAllAtATime() { foreach (Agent agent in listAgents) { agent.AgentDied += OnAgentDied; RaceDrone drone = CreateDrone(agent); drone.Drone.Restart(); drone.CheckpointIndex = 1; AgentsAliveCount++; drones.Add(drone); } }
//Create a new RaceDrone from the prototype private RaceDrone CreateDrone(Agent agent) { GameObject droneCopy = Instantiate(PrototypeDrone.gameObject); droneCopy.transform.position = startPosition; droneCopy.transform.rotation = startRotation; DroneController controllerCopy = droneCopy.GetComponent <DroneController>(); droneCopy.SetActive(true); RaceDrone raceDrone = new RaceDrone(controllerCopy, 1); raceDrone.Drone.Agent = agent; return(raceDrone); }
private void UpdateAllDrones() { for (int i = 0; i < drones.Count; i++) { RaceDrone drone = drones[i]; if (drone.Drone.enabled) { drone.Drone.CurrentCompletionReward = GetCompletePerc(drone.Drone, ref drone.CheckpointIndex); //Update best Drone if (BestDrone == null || drone.Drone.CurrentCompletionReward >= BestDrone.CurrentCompletionReward) { BestDrone = drone.Drone; } } } }