- Home /
Question by
Trollvahkiin · Oct 11, 2013 at 06:18 PM ·
countdownstats
How to decrease a number by 1 every second?
Hey, so I put together this code, it's fairly simple but I doesn't work. Instead of going down by 1 every second it goes to 0 with in 2 seconds. How do I fix it?
#pragma strict
var health : String = "Health: ";
var hunger : String = "Hunger: ";
var thirst : String = "Thirst: ";
var sleepiness : String = "Sleepinees: ";
var hungerLevel : int = 100;
var thirstLevel : int = 100;
var sleepinessLevel : int = 100;
var speed : int = 1;
function OnGUI()
{
GUI.Box (Rect (0,Screen.height - 25,100,25), health);
GUI.Box (Rect (110,Screen.height - 25,100,25), hunger);
GUI.Box (Rect (220,Screen.height - 25,100,25), thirst);
GUI.Box (Rect (330,Screen.height - 25,110,25), sleepiness);
}
function Update()
{
hungerLevel -= Time.deltaTime * speed;
thirstLevel -= Time.deltaTime * speed;
sleepinessLevel -= Time.deltaTime * speed;
hunger = "Hunger: " + hungerLevel;
thirst = "Thirst: " + thirstLevel;
sleepiness = "Sleepiness: " + sleepinessLevel;
{
Comment
Answer by Jignesh G. · Nov 23, 2014 at 05:54 PM
You can achieve it using a recursive co-routine which will decrease a no every second. See below Code Sample.
int nos = 100;
void Start ()
{
StartCoroutine ("descreseNos");
}
IEnumerator descreseNos()
{
yield return new WaitForSeconds(1F);
nos -= 1;
StartCoroutine ("descreseNos");
}
how to attach code here, i don't really know!!! I tried and it kinda messed up, i am sorry for out of context question but any help?
Your answer
![](https://koobas.hobune.stream/wayback/20220613115746im_/https://answers.unity.com/themes/thub/images/avi.jpg)