Countdown Timer checks not working

Hello, so I was making a tutorial popup script today, it all works perfectly fine until it comes to checking if my timer has hit 0 or not. It should be working but for some reason, it doesn’t want to. What the code is designed to do is cycle through the popups but in 3 & 4 (popUpIndex 2 & 3) they use a timer but it doesn’t toggle the next one as the timer hits 0.
If anyone could help that would be greatly appreciated.

    void TutorialLevel1()
        {
            for (int i = 0; i < popUps.Length; i++)
            {
                if (i == popUpIndex)
                {
                    popUps.SetActive(true);
 }
 else
 {
 _popUps.SetActive(false);
 }
 }
 
 if (popUpIndex == 0)
 {
 if (Input.GetKeyDown(KeyCode.W))
 {
 popUpIndex++;
 }
 }
 else if (popUpIndex == 1)
 {
 if (Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.D))
 {
 popUpIndex++;
 }
 }
 if (popUpIndex == 2)
 {
 popUpTimer = 5f;
 
 if (popUpTimer <= 0)
 {
 popUpIndex++;
 }
 else
 {
 popUpTimer -= Time.time;
 }
 }
 else if (popUpIndex == 3)
 {
 popUpTimer = 5f;
 
 if (popUpTimer <= 0)
 {
 popUpIndex++;
 }
 else
 {
 popUpTimer -= Time.time;
 }
 }
 else if (popUpIndex == 4)
 {
 //Hide When mission complete!
 }
 }

I have managed to fix it myself!

The way I fixed it is I had to rearrange the code a bit. So instead of using an else to countdown the timer, I put the countdown timer just before the check.

if (popUpIndex == 2)
        {
            popUpTimer -= Time.deltaTime;

            if (popUpTimer <= 0)
            {
                popUpIndex++;
                popUpTimer = 5f;
            }
        }

LOL,

I stumbled upon this post because I had a similar problem and it got fixed the same way. :sweat_smile: :sweat_smile: