Unity中的协程

函数

IEnumerator A(){
  yield return Current;  //下一帧执行
}

开启为StartCoroutine() 参数可以为函数和函数名字符串,但是字符串的运行开销比较大。
关闭所有协程 StopAllCoroutines()
关闭指定协程 StopCoroutines()

协程原理

常见用法

如果Current是null,就相当于什么也不做。在下一次游戏循环中,就会调用MoveNext。所以yield return null就起到了等待一帧的作用

如果Current是WaitForSeconds类型,Unity会获取它的等待时间,每次游戏循环中都会判断时间是否到了,只有时间到了才会调用MoveNext。所以yield return WaitForSeconds就起到了等待指定时间的作用

如果Current是UnityWebRequestAsyncOperation类型,它是AsyncOperation的子类,而AsyncOperation有isDone属性,表示操作是否完成,只有isDone为true时,Unity才会调用MoveNext。对于UnityWebRequestAsyncOperation而言,只有请求完成了,才会将isDone属性设置为true。

posted @ 2024-09-11 23:54  zlllIII  阅读(85)  评论(0)    收藏  举报