Unity Coroutine(协程)

程序

进程

主线程(操作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函数只能存在一个

上一篇:Unity粒子特效系列-爆炸冲击波


下一篇:Unity DLL (Dynamic Link Library)---动态链接库