协程yield 的使用

yield 常见用法

yield return null

表示暂缓一帧,在下一帧接着往下处理,也有人习惯写成yield return 0或者yield return 1。

WaitForEndOfFrame

顾名思义是在等到本帧的帧末进行在进行处理

yield return new WaitForSeconds

这个要注意几点

  1. 实际时间等于给定的时间乘以Time.timeScale的值。

  2. 触发间隔一定大等于1中计算出的实际时间,而且误差的大小取决于帧率,因为它是在每帧处理协程的时候去计算时间间隔是否满足条件,如果满足则继续执行。例如,当帧率为5的情况下,一帧的时间为200ms,这时即使时间参数再小,最快也要200ms之后才能继续执行剩余部分。

参考:https://blog.csdn.net/fdyshlk/article/details/72667814arrow-up-right

yield return null和yield return new WaitForSeconds协程最好别一起混着用,特别是同时开启的这两个协程还有相互依赖的关系,因为帧率是不稳定的,所以有可能引起某些非必现的bug。

yield return StartCoroutine

等待返回的Coroutine结束。

最后更新于