- Home /
Make a countdown timer say "go" once it reaches 0
I know this is a simple question, and probably has a simple answer, but I want my timer to go: "3" "2" "1" "GO!" and it only goes: "3" "2" "1" "GO!" "0" "-1" and so on. public class countDownTimer : MonoBehaviour { public int timeLeft = 60; //Seconds Overall public Text countdown; //UI Text Object void Start () { StartCoroutine("LoseTime"); Time.timeScale = 1; //Just making sure that the timeScale is right } void Update () { countdown.text = ("" + timeLeft); //Showing the Score on the Canvas } //Simple Coroutine IEnumerator LoseTime() { for (int i = 3; i >=0; i--) { yield return new WaitForSeconds (1); timeLeft--; i++; if (timeLeft == 0) { countdown.text = ("go"); // i = 0; }}}}
Where it says //i = 0 is the problem, i think. Whenever i uncomment that script piece, it completly stops the timer
Answer by Hellium · Jan 15, 2020 at 06:41 PM
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class countDownTimer : MonoBehaviour
{
private float timeLeft;
public Text countdown;
void Start()
{
timeLeft = 3;
Time.timeScale = 1; //Just making sure that the timeScale is right
}
void Update()
{
timeLeft -= Time.deltaTime;
if (timeLeft > 0)
{
countdown.text = Mathf.CeilToInt(timeLeft).ToString();
}
else if (timeLeft < -1)
{
countdown.CrossFadeAlpha(0, 0.2f, true); // Hide text
enabled = false; // Stop timer
}
else
{
countdown.text = "Go!";
}
}
}
If you want to keep a coroutine
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class countDownTimer : MonoBehaviour
{
public int timeLeft = 3;
public Text countdown;
void Start()
{
StartCoroutine(Countdown(timeLeft));
Time.timeScale = 1; //Just making sure that the timeScale is right
}
IEnumerator Countdown(int time)
{
WaitForSeconds wait = new WaitForSeconds(1);
for(; time > 0; --time)
{
countdown.text = time.ToString();
yield return wait;
}
countdown.text = "Go!";
yield return wait;
countdown.CrossFadeAlpha(0, 0.2f, true); // Hide text
}
}
Your answer
Follow this Question
Related Questions
countdown timer starts from the begining when i reLaunch the app 1 Answer
Calling methods 0 Answers
How do I implement a timer into this script that will record the total time the player has played. 2 Answers
Start timer with trigger 1 Answer
How to stop the countdown timer when I have collected all the coins? 2 Answers