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;
}
}
}