void OnTriggerEnter(Collider other) { if (other.gameObject.CompareTag("Car_Detector") || other.gameObject.CompareTag("Gibs")) //if collided with car { carControl.StopCar(); blinker.ActivateBlinkers(); } }
// Update is called once per frame void Update() { //FSM que maneja el flujo de la partida. switch (GameState) { //Si el estado es "Starting" comienza a correr la cuenta regresiva para iniciar la carrera. Se actualiza el texto correspondiente. case GameStates.Starting: if (startTimer <= 3 && startTimer > 0) { UIControl.SetStartText(Mathf.Ceil(startTimer).ToString()); } else if (startTimer <= 0) { UIControl.SetStartText("GO!"); GameState = GameStates.Playing; //Al completar la cuenta regresiva, se inicia la carrera. CarControl.StartCar(); //Se cambia el estado del auto de "Stopped" a "Accelerating". } startTimer -= Time.deltaTime; break; //Si el estado es "Playing", se actualiza el cronómetro del tiempo de la carrera. case GameStates.Playing: if (GameTimer <= 0 || CarControl.CarState == CarController.CarStates.Destroyed) { GameState = GameStates.Ending; //Si el cronómetro llega a 0, se termina la carrera, pero no todavía la partida. } GameTimer -= Time.deltaTime; break; //Si el estado es "Ending", se comienza a frenar el auto case GameStates.Ending: if (CarControl.CarState != CarController.CarStates.Stopping && CarControl.CarState != CarController.CarStates.Stopped) { CarControl.StopCar(); //Si el auto se está moviendo, se aplica la fuerza de freno. } else if (CarControl.CarState == CarController.CarStates.Stopped) { EndGame(); //Si la velocidad del auto ya llegó a 0, se termina la partida. GameState = GameStates.Ended; } break; case GameStates.Ended: break; } }