概念:伴随着主线程⼀起运⾏的⼀段程序。
协程与协程之间是并⾏执⾏,与主线程也是并⾏执⾏。
协程可以用来计时,例如lol生产野怪,在怪物死亡时调用计时生成野怪的协程,那么这段程序只会在野怪倒计时的时候执行,生成野怪后协程就会关闭,比起直接写在主进程里节省性能。
关键字IEnumerator
协程必须返回 yield retrun
yield return 【具体的值】:
暂停协程
等待下⼀帧继续执⾏
执⾏的时间节点 在Update之后 LateUpdate之前
yield return new WaitForSeconds(n)
暂停协程
等待n秒之后继续执⾏
yield return new WaitForFixedUpdate()
暂停协程 ,等待⼀个fifixed的时间间隔之后继续执⾏
相当于yield return new WaitForSeconds(0.02)
yield return StartCoroutine(协程⽅法);
暂停协程
等待yield return 的协程执⾏完了之后继续执⾏本协程
开始协程的方法:
1.StartCoroutine(协程⽅法([协程参数]))
2.StartCoroutine(”⽅法名称”)
3.StartCoroutine(”⽅法名称”,⽅法参数) //⽤这种⽅式启动的协程参数只能是1个
停止协程的方法:
1.StopCoroutine(Coroutine)
2.StopCoroutine(IEnumerator)
3.StopCoroutine(string methodName) //只能停掉,⽤字符串启动的协程
4.StopAllCoroutine 停⽌所有正在运⾏的协程 //一般不用,你可能会停止别人写的协程
跳出协程需要用 yield break
特殊协程 IEnumerator Start()
//////Start协程会在游戏开始时⾃动启动