This question was
closed Dec 01, 2018 at 12:03 AM by
ChrisWarner103 for the following reason:
I worked it out myself and put the solution bellow
Question by
ChrisWarner103 · Nov 30, 2018 at 11:48 PM ·
timer countdownloops
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[i].SetActive(true);
}
else
{
popUps[i].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!
}
}
Comment
Best Answer
Answer by ChrisWarner103 · Dec 01, 2018 at 12:02 AM
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;
}
}