Unity——协程使用
官方解释:
在主程序运行的同时,开启另外一段逻辑处理,来协同当前程序的执行;
实际就是函数中调用另一个函数,另一个执行完成回来继续往下执行该函数。
StartCoroutine方法属于MonoBehaviour中API,和Invoke一样必须继承MonoBehaviour才能使用;
使用方法1:
StartCoroutine("方法名",参数);
使用方法2:
StartCoroutine(IEnumerator method)
IEnumrator方法:
StartCoroutine(TestMethod());
IEnumerator TestMethod()
{
yield return 1;
}
yield return种类
yield return 0 or yield return null: 程序在下一帧中从当前位置继续执行;
yield return 1,2,3,......: 程序等待1,2,3...帧之后从当前位置继续执行;
yield return new WaitForSeconds(n): 程序等待n秒后从当前位置继续执行;
yield new WaitForEndOfFrame(): 在所有的渲染以及GUI程序执行完成后从当前位置继续执行;
yield new WaitForFixedUpdate(): 所有脚本中的FixedUpdate()函数都被执行后从当前位置继续执行;
yield return WWW: 等待一个网络请求完成后从当前位置继续执行;
yield return StartCoroutine(): 等待一个协程执行完成后从当前位置继续执行;
yield break: 直接从当前位置跳出函数体,回到函数的根部;
协程终止
StopCoroutine (string methodName) //终止指定的协程
StopAllCoroutine() //终止所有协程