程序
进程 |
主线程(操作Unity相关的对象、组件...) |
子线程 | |
子线程 | |
... |
协同程序(Coroutine)
概念:伴随着主线程一起运行的一段程序
注意:协程与协程之间是并行执行,与主线程也是并行执行。
创建协程方法 | 返回值关键字IEnumerator | |
必须返回yield return | 1、返回对象(有构造的执行构造) 2、等待下一帧继续执行 |
特殊的yield return
普通版 |
yield return【具体的值】 | 暂停协程 等待下一帧继续执行 执行的时间节点(Update后,FateUpdate之前) |
yield return new WaitForEndOfFrame() | 暂停协程 等待下一帧继续执行 执行的时间节点(OnGUI之后) |
|
拓展 |
yield return new WaitForSeconds(n) | 暂停协程 等待n秒之后继续执行 |
yield return new WaitForFixedUpdate() | 暂停协程 等待一个fixed的时间间隔之后继续执行 yield return new WaitForSeconds(0.02) |
|
yield return StartCoroutine(协程方法) | 暂停协程 等待yield return 的协程执行完了之后继续执行 |
开启协程
StartCoroutine | StartCoroutine(协程方法[协程参数]) | |
StartCoroutine("方法名称") | ||
StartCoroutine("方法名称",方法参数) | 用这种方法启动 参数只能有一个 |
停止协程
StopCoroutine | StopCoroutine(Coroutine) | |
StopCoroutine(IEnumerator) | ||
StopCoroutine(string methodName) | 限制:只能停掉用字符串启动的协程 | |
StopAllCoroutine | 停止所有正在运行的协程 |
跳出协程
yield break
特殊协程
IEnumerator Start()
简介:Start协程会在游戏开始时自动启动
注意:此协程和Start函数只能存在一个