- Home /
Question by
Davidbillmanoy · Jun 20, 2021 at 07:23 AM ·
countdownracing gamerace
Major Race Countdown Bug
Hello! I have a bug in the race countdown. The last 3 AI Cars started moving and then the countdown didn't show. Anyone can help me with that bug? Thanks!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
using UnityStandardAssets.Vehicles.Car;
public class RaceManager : MonoBehaviour
{
public static RaceManager instance;
GameObject Player;
GameObject[] AIs;
Checkpoints checkpoint;
public int maxLaps = 1;
public GameObject finishMenu;
public GameObject UIScript;
public GameObject Counter;
public AudioSource ReadySound;
public AudioSource GoSound;
bool stopped = false;
// Start is called before the first frame update
void Start()
{
//maxLaps = Options.getLaps();
Player = GameObject.FindGameObjectWithTag("Player");
checkpoint = Player.GetComponent<Checkpoints>();
AIs = GameObject.FindGameObjectsWithTag("AI");
StartCoroutine(CountDown());
}
// Update is called once per frame
void Update()
{
if (checkpoint.lap > maxLaps && stopped == false)
{
StopCar(Player);
stopped = true;
checkpoint.lap--;
}
foreach(GameObject AI in AIs)
{
if(AI.GetComponent<Checkpoints>().lap>maxLaps)
StopCar(AI);
}
}
IEnumerator CountDown()
{
Player.GetComponent<CarUserControl>().enabled = false;
foreach (GameObject AI in AIs)
{
AI.GetComponent<CarAIControl>().enabled = false;
AI.GetComponent<ResetCar>().enabled = false;
}
yield return new WaitForSeconds(0.3f);
Counter.GetComponent<Text>().text = "3";
Counter.SetActive(true);
yield return new WaitForSeconds(1f);
Counter.GetComponent<Text>().text = "2";
Counter.SetActive(true);
yield return new WaitForSeconds(1f);
Counter.GetComponent<Text>().text = "1";
Counter.SetActive(true);
yield return new WaitForSeconds(1f);
Counter.GetComponent<Text>().text = "GO";
Counter.SetActive(true);
Player.GetComponent<CarUserControl>().enabled = true;
foreach (GameObject AI in AIs)
{
AI.GetComponent<CarAIControl>().enabled = true;
AI.GetComponent<ResetCar>().enabled = true;
}
yield return new WaitForSeconds(1f);
Counter.SetActive(false);
}
void StopCar(GameObject car)
{
if (car.GetComponent<CarUserControl>() != null)
car.GetComponent<CarUserControl>().enabled = false;
if (car.GetComponent<CarAIControl>() != null)
car.GetComponent<CarAIControl>().enabled = false;
if (car.GetComponent<ResetCar>() != null)
car.GetComponent<ResetCar>().enabled = false;
if(car.tag=="Player")
{
finishMenu.SetActive(true);
UIScript.SendMessage("showFinalPos");
}
}
}
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220613035239im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
BCE0044: expecting ), found ';'. 1 Answer
How can I create a single car with different settings? 0 Answers
Countdown To Start Game 2 Answers
Check my race code please 3 Answers
advanced countdown timer help please 0 Answers