How to make timer wait before resetting?
So I want to make a ball turn green (to indicate a power up in size) at a random time for a couple of seconds, and then return to its white color. Right now I have it set up so that the ball turns green at interval between 4 and 8 seconds, but it only flashes green for a split second because it resets the timer. Is there a way to make the timer wait? How do I go about this? Here's my code:
public float speed = 10f;
public int scoreValue = 1;
public bool canPowerUpSize;
public float timeBeforeNextSizePowerUp;
public float powerUpSizeTimer = 0f;
public float powerUpSizeDuration = 4f;
public float sizeMinTime = 4f;
public float sizeMaxTime = 8f;
public float timer = 0f;
void Start()
{
GetComponent<Rigidbody>().velocity = new Vector3(speed * 1, speed * 1, 0f);
timer = 0f;
powerUpSizeTimer = 0f;
}
void Update()
{
if (canPowerUpSize == true)
{
timeBeforeNextSizePowerUp = Random.Range(sizeMinTime, sizeMaxTime);
gameObject.GetComponent<Renderer>().material.color = Color.white;
powerUpSizeTimer = 0f;
canPowerUpSize = false;
}
else
{
powerUpSizeTimer += Time.deltaTime;
if (powerUpSizeTimer >= timeBeforeNextSizePowerUp)
{
canPowerUpSize = true;
gameObject.GetComponent<Renderer>().material.color = Color.green;
}
}
}
Answer by tormentoarmagedoom · May 06, 2018 at 09:19 PM
Good day,
You have the Invoke method, which allow to invoke a method in the same script in X seconds
void Update()
{
if(something)
{
Invoke ("TheMethodIWant", 2.5f);
}
}
void TheMethodIWant()
{
do something;
}
Byee!!!
Your answer
Follow this Question
Related Questions
How do I decrease a slider over time? 1 Answer
Making A Countdown Timer 0 Answers
Timer in UI panel does not reset 1 Answer
I m getting error please solve my errors I m beginner in unity,Getting error of : 2 Answers
Tutorial on Button Mashers 0 Answers