- Home /
How to create an Idle counter ?
hello, I am new for unity. I'm trying to implement a counter that counts down whenever the player input stops, and whenever input begins again the counter is to reset. I try many code but not working. Any tips would be much appreciated. Thanks!
Answer by Mmmpies · Dec 29, 2014 at 12:03 PM
Set a float e.g.
 private float counterStart = 20f; // whatever value you want
and anther
 private float theCounter;
In start set
 theCounter = counterStart;
check for user input and if the user is inputting set
 theCounter = counterStart;
if there is no input set
 theCounter = theCounter - Time.deltaTime;
And check for it going below zero.
Thank for reply. how to find "no input set" ? That's what i want to know.
just use an if statement to capture which input button is being pressed
 if(Input.GetButtonDown("Button1")
 {
     // do input stuff and set 
     theCounter = counterStart;
 }
 else if (Input.GetButtonDown("Button2")
 {
     // do input stuff and set
     theCounter = counterStart;
 }
 else if (Input.GetButtonDown("Button3")
 {
     // do input stuff and set
     theCounter = counterStart;
 }
 else
 {
    theCounter = theCounter - Time.deltaTime;
 }
Answer by danvalho · Dec 30, 2014 at 08:11 PM
If you want only to know if any key/button was pressed, you can use Input.anyKeyDown and reset or increment the counter:
 private float idleCounter = 0.0f;
 
 void Update() {
   if (Input.anyKeyDown) {
     idleCounter = 0.0f;  // reset counter          
   } else {
     idleCounter += Time.deltaTime; // increment counter
   }
 }
Your answer
 
 
             Follow this Question
Related Questions
Problem with player movements 1 Answer
How to make specific text in a string array Bold C# 2 Answers
Movement Script Help 1 Answer
C# Plane Detecting a Gameobject 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                