Hello, I’m experimenting something with coroutines, but it doesn’t seem to work. I would like to play each part of one coroutine each time I press the space bar. That works correctly. But, also, I would like to create a 5 second gap beetween each part of the coroutine.
For example, if I press space, It will write “first part”. If I press again before 5 seconds, I would like nothing happen. For the moment, the 5 second constraint doesn’t seem to be effective. Some idea to help me do that ?
using UnityEngine;
using System.Collections;
public class CoroutineTest : MonoBehaviour {
private IEnumerator test;
void Awake()
{
test = Test();
}
void Update()
{
if (Input.GetKeyDown("space"))
{
StartCoroutine(test);
}
}
IEnumerator Test()
{
Debug.Log("first part");
yield return new WaitForSeconds(5);
StopAllCoroutines();
Debug.Log("second part");
yield return new WaitForSeconds(5);
StopAllCoroutines();
Debug.Log("third part");
yield return new WaitForSeconds(5);
StopAllCoroutines();
Debug.Log("forth part");
yield return new WaitForSeconds(5);
StopAllCoroutines();
while (true)
{
Debug.Log("fifth and last part");
yield return new WaitForSeconds(5);
StopAllCoroutines();
}
}
}