void refreshGhostCarsPositions(List <CarNeuralCore> sortedCars) { if (sortedCars != null && sortedCars.Count > 0) { if (prevCarWithFurthestDistTravelled != null) { CarFitness carFitness = sortedCars [0].GetComponent <CarFitness> (); if (carFitness.DistanceTravelled > prevCarWithFurthestDistTravelled.DistTravelled) { lastBestGameObject.SetActive(false); allTimeBest.SetActive(true); allTimeBest.transform.position = carFitness.PosWhenDisabled; allTimeBest.transform.rotation = carFitness.RotationWhenDisabled; } else { lastBestGameObject.SetActive(true); lastBestGameObject.transform.position = carFitness.PosWhenDisabled; lastBestGameObject.transform.rotation = carFitness.RotationWhenDisabled; } } } else { allTimeBest.SetActive(false); lastBestGameObject.SetActive(false); } }
void onCarDisabled(CarNeuralCoreBase carNeuralCoreBase) { CarFitness carFitness = carNeuralCoreBase.GetComponent <CarFitness> (); if (carFitness != null) { carFitness.DistanceTravelled = stage.GetDistanceFromBeginning(carFitness.PosWhenDisabled); carFitness.RotationWhenDisabled = carNeuralCoreBase.transform.rotation; bool allDisabled = true; for (int i = 0; i < cars.Count; i++) { if (cars [i].IsActive) { allDisabled = false; break; } } if (allDisabled && !isActivatingCars) { onAllCarsDisabled(); } } }
private void FixedUpdate() { if (carToFollow != null && camera != null) { if (!IsVisible) { show(); } Vector3 carPos = carToFollow.transform.position; Vector2 screenPos = camera.WorldToScreenPoint(carPos); this.transform.position = screenPos; if (Time.frameCount % 2 == 0) { cacheCarFitnessIfNeeded(); float dist = stage.GetDistanceFromBeginning(carPos); int fit = CarFitness.CalculateFitness(carFitness.GatesPassed, dist, carFitness.AvgVelocity, carFitness.FitnessType); distTravelled.text = (dist).ToString("0.00"); avgSpeed.text = (carFitness.AvgVelocity).ToString("0.00"); fitness.text = (fit).ToString(); } } else if (IsVisible) { hide(); } }
void cacheCarFitnessIfNeeded() { if (carToFollow != null) { carFitness = carToFollow.GetComponent <CarFitness> (); } }
public CarSimpleData GetCarSimpleData() { CarFitness carFitness = GetComponent <CarFitness> (); return(new CarSimpleData(GetWeights(), carFitness.Fitness, carFitness.DistanceTravelled, SensorsLength, AngleBetweenSensors)); }