Why isn't this working?

Hello, I am wanting to have a timer in my game so I’ve looked around for a script to do so. I found this-

#pragma strict

 // TIMER counting DOWN
 var timer : float = 0.0;
 var timerMax : float = 30.0;
 function Start()
 {
     timer = timerMax ;
 }
 function Update()
 {
     timer -= Time.deltaTime;
     
     if (timer < 0)
     {
         Debug.Log("timer Zero reached !");
         
         // reset timer
         timer = timerMax;
     }
 }

In the post the person had said to attach it to a GUI text. I tried to see if it would work on the new UI text but the text doesn’t show the time. Do I need to convert something or?
Also I am quite new to Unity. All help is appreciated.

try declairing your max variable at the top like this instead:

var timerMax:float;
timerMax=30;

Try watching the Unity tutorial here on how to make a score display for your game.

It’s not for a timer, but the exact same principles should apply. Just use your timer to populate the text instead of a score.

Maybe take a look at this. Here’s my code for my clock. I used GUI Text at first but didn’t like how it worked (Does anybody really?) so switched to a text mesh and now its very easy to work with.

The code is for a 12 hour clock with am and pm, but can easily be modified for any sort of timer/clock.

Enjoy

	int hours;
	public int hours24;
	public float minutes;
	public int iMinutes;
	string fMinutes;
	string ampm;

	TextMesh clockText;

	void Start () {
		clockText = GetComponent<TextMesh> ();
		hours = 12;
		hours24 = 12;
		minutes = 01;
		ampm = "pm";

	}
void Update () {
		// Build Time. Default is one minute per second.
		minutes += Time.deltaTime; 
		iMinutes = (int) minutes ;
		fMinutes = iMinutes.ToString("D2");


		if (iMinutes >= 60) 
		{
			if (hours == 12)
			{	
				hours = 0;
			}
			if (hours == 11)
			{	
				if (ampm == "am")
					ampm = "pm";
				else
					ampm = "am";
			}

			if (hours24 == 23)
				hours24 = 0;

			hours +=  1;
			hours24 += 1;
			iMinutes = 0;
			minutes = 0;

		}

		clockText.text = hours + ":" + fMinutes + " " + ampm;
	}