如何使循环每2秒执行一次迭代并产生?

时间:2014-08-28 06:58:14

标签: c# unity3d yield coroutine

无法理解协程工作的逻辑。在我的例子中,据我所知,循环必须每两秒执行一次迭代,但在启动程序后,它会等待两秒钟并执行整个循环。

无法理解,有什么不对。

    void Start ()
    {
        StartCoroutine ("MyCoroutine");
    }

    IEnumerator MyCoroutine()
    {
        yield return new WaitForSeconds(2.0f);      

        for (int i = 0; i < 5; i++)
        {
            Debug.Log(i); // It must execute ont time per 2 seconds?
            yield return null;
        }
    }

1 个答案:

答案 0 :(得分:1)

你应该等待循环的每一步:

IEnumerator MyCoroutine()
{
    for (int i = 0; i < 5; i++)
    {
        Debug.Log(i); // before waiting
        yield return new WaitForSeconds(2.0f);
        // after waiting
    }
}