Unity学习记录之协程
1.协程的意义
在Unity中使用协程Corotine
能够替代Update表示一段过程的方法,例如定义一个计时器方法,进行倒计时。
2.协程与迭代器
协程返回迭代器IEnumerator
接口,使用迭代器的关键字yield return
将程序进行挂起,当挂起结束之后,函数从yield return
之后的位置进行执行。
3.协程挂起常见的条件
yield关键语句 | 说明 |
---|---|
new WaitForSeconds() | 挂起等待固定的秒数 |
new WaitForSecondsRealtime | 不受Time.timeScale影响 |
StartCoroutine() | 挂起一个新的协程 |
asyncOperation | 等待异步操作结束之后 |
new WaitForFixedUpdate() | 挂起等待固定帧结束 |
null/数字 | 挂起等待一帧 |
break | 结束协程后续操作 |
new WWW() | 等待网络资源加载完毕 |
new WaitUntil() | 等待条件为true继续执行 |
new WaitWhile() | 等待条件为false继续执行 |
new WaitForEndOfFrame() | 等待所有渲染结束后继续执行 |
4.使用协程需要注意的地方
- 使用
StartCoroutine
方法开启协程 ,使用StopCoroutine()
关闭协程。 - 如果使用方法名开启协程,则不能够使用方法名关闭协程,必须使用
Coroutine
变量或者string
变量作为开启关闭协程的参数。 yield
语句不能够再Update
方法和FixedUpdate
中使用。- 协程的返回类型是
Coroutine
类型,且使用协程必须要继承MonoBehaviour
类。