Unity 停止协程的坑,以及协程的实际应用

    IEnumerator loop;
    IEnumerator loop1;


    void Start()
    {
        loop = Loop(5, 1);
        StartCoroutine(loop);
        loop1 = Loop(10, 2);
        StartCoroutine(loop1);
    }

    public void StopIE()
    {
        StopCoroutine(loop);
    }


    IEnumerator Loop(float num,float time)
    {     
        for (int i = 0; i < num; i++)
        {
            DeBug.Log(i);
            yield return new WaitForSeconds(time);
        }    
    }

以上代码的输出就不贴了。因为执行是非常正常的

研究以后得到以下结论:

 

首先一个协程方法可以开启多个不同的协程,互不干扰。

 

其次,字段保存协程只能保存到此协程完成以前。协程完成后再执行 StopCoroutine是会报错:空物体引用。

 

你可能感兴趣的:(unity)