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

    技术2022-07-12  84

    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是会报错:空物体引用。

     

    Processed: 0.009, SQL: 9