hello, im making a gaugemeter for my game, its a regressing slider (max value =100, every second i substact 3)
when you do certain actions the meter fills, and whenever it surpasses one of 3 “checkpoints” (at 33, 66 and 100) i want it to stop regressing for 2 seconds.
i tried making it this way but whenever i surpass 33, its stuck paused. this is because playergauge.value>= 33 always returns true after that, but i dont know how to fix this, help anyone?
bool pausedP = false;
bool pausedE = false;
public float pauseDuration =2f;
private void Update()
{
if (!pausedE)
{
if (enemygauge.value == 100|| enemygauge.value >= 66 || enemygauge.value >= 33) { StartCoroutine(wait("enemy")); pausedE = true; }
else if (enemygauge.value > 0) { enemygauge.value -= 3 * Time.deltaTime; }
}
if (!pausedP)
{
if (playergauge.value == 100 || playergauge.value >= 66 || playergauge.value >= 33) { StartCoroutine(wait("player")); pausedP = true; }
else if (playergauge.value > 0) { playergauge.value -= 3 * Time.deltaTime; }
}
}
IEnumerator wait(string whopaused)
{
yield return new WaitForSeconds(pauseDuration);
if(whopaused == "player") { pausedP = false; }
else if (whopaused == "enemy") { pausedE = false; }
}