Hello, I am trying to start this coroutine, and from the debug log it shows the WaitInSeconds being called, but it doesn’t wait and counts quickly to 3. What am I doing wrong? Could this be related to the frame rate?
Also, on line 27, if I decrement the countdown_timer going from 3 to 1, Unity just freezes and starts to consume cpu cycles and I end up killing unity. I’m not seeing an infinite loop here, unless there’s something else going on?
using UnityEngine;
using System.Collections;
public class Countdown : MonoBehaviour {
public static int countdown_timer;
private TypogenicText tText;
// Use this for initialization
void Start () {
tText = GetComponent<TypogenicText>();
countdown_timer = 1;
}
// Update is called once per frame
void Update () {
while(countdown_timer < 4)
{
Debug.Log("Countdown for loop: " + countdown_timer);
tText.Text = countdown_timer.ToString();
tText.RebuildMesh();
countdown_timer += 1;
StartCoroutine(WaitInSeconds(1.0f));
}
}
IEnumerator WaitInSeconds(float secs)
{
Debug.Log ("WaitInSeconds for " + secs);
yield return new WaitForSeconds(secs);
}
}
Any help is appreciated, thanks!