boxmoe_header_banner_img

希望来到这里能让你发现宝藏

加载中

文章导读

Unity 协程和update的次序关系


avatar
xienia July 12, 2025 75

今天在学习unity的Eventhandle的图中写了一个状态管理器如下

随后写了一个触发器来执行:

随后放两个测试盒子去运行,但是比较遗憾,并不能成功执行,可能是因为这两个start重合了,那没问题我将handle的增加函数事件放到了awake中,但是依然没有作用。
随后我改了一下第二个加了个线程:

然后看到了最后的结果成功执行

再次通过debug发现attack是先执行,stateManager是后执行,二者的start和update是交替执行并没有问题 先是attack的start执行了然后跑到了协程的yield return null 但是依然在第一次update之后没有执行击打函数,说明yield是严格按流程及时提前跑到了也是放到缓存中等update之后运行,因此在debug时才出现update运行两次之后才进行下面的操作,而在中间没有跑到yield的情况,这下就明朗了。

在start中使用协程之后会直接执行协程中内容直到yield return null , 此时这个会被放进缓存中等待update,随后进行了第一次update处理了yield return null ,随后进行了第二次update 之后处理了协程中return后面的内容。



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字

插入代码