协程开启和停止的方法
使用IEnumerator
IEnumerator ie;//声明变量
ie = Test(); //将协程函数赋值给变量
StartCoroutine(ie);//开启协程
StopCoroutine(ie);//关闭协程
使用 Coroutine
Coroutine stopCor_1;//声明变量
stopCor_1 = StartCoroutine(Test());//将协程函数赋值给变量,同时启动该协程。
StartCoroutine(stopCor_1);//开启协程
StopCoroutine(stopCor_1);//关闭 协程
使用字符串的函数名
StartCoroutine(“stopCor_1”);//开启协程
StopCoroutine(“stopCor_1”);//关闭协程
Yield Return 用法
yield return null; // 下一帧再执行后续代码
yield return 0; //下一帧再执行后续代码
yield return 6;//(任意数字) 下一帧再执行后续代码
yield break; //直接结束该协程的后续操作
yield return asyncOperation;//等异步操作结束后再执行后续代码
yield return StartCoroution(/*某个协程*/);//等待某个协程执行完毕后再执行后续代码
yield return WWW();//等待WWW操作完成后再执行后续代码
yield return new WaitForEndOfFrame();//等待帧结束,等待直到所有的摄像机和GUI被渲染完成后,在该帧显示在屏幕之前执行
yield return new WaitForSeconds(0.3f);//等待0.3秒,一段指定的时间延迟之后继续执行,在所有的Update函数完成调用的那一帧之后(这里的时间会受到Time.timeScale的影响);
yield return new WaitForSecondsRealtime(0.3f);//等待0.3秒,一段指定的时间延迟之后继续执行,在所有的Update函数完成调用的那一帧之后(这里的时间不受到Time.timeScale的影响);
yield return WaitForFixedUpdate();//等待下一次FixedUpdate开始时再执行后续代码
yield return new WaitUntil()//将协同执行直到 当输入的参数(或者委托)为true的时候....如:yield return new WaitUntil(() => frame >= 10);
yield return new WaitWhile()//将协同执行直到 当输入的参数(或者委托)为false的时候.... 如:yield return new WaitWhile(() => frame < 10);
引用
https://blog.youkuaiyun.com/beihuanlihe130/article/details/76098844
https://blog.youkuaiyun.com/Czhenya/article/details/115936459