难点
- 自己写了一遍协程,困难的地方在于unity中的执行顺序
- 突然发现unity里面可以 yield return 的其实有很多
WaitForSeconds
WaitForSecondsRealtime
WaitForEndOfFrame
WaitForFixedUpdate
WaitUntil
WaitWhile
IEnumerator(可以用于协程嵌套)
- 就单纯拿WaitUntil来说,他是在yield return的这一帧就执行了,还是在下一帧才开始执行呢?
- 要是WaitUntil直接返回true的话会是怎样的运行结果
- 协程嵌套又该如何实现
这是我测试Unity协程后的结论
- unity会先递归获得Wait对象,并在当前帧执行一次Wait对象
- 如果这个Wait对象运行结束,那就置为空,留到下一帧获取新的Wait对象
- 在下一帧,Wait对象不为空,先执行Wait对象,如果结束了,就在当前帧重复1,Wait对象为空,直接回到1
项目地址