![]() |
1
38
程序将启动循环,如果没有产量,它只在同一帧内运行所有迭代。 如果您有数百万次迭代,那么它很可能会阻止您的程序,直到所有迭代完成,然后继续。 创建协程时,Unity将其附加到单行为对象。它将在调用时首先运行startcroutine,直到达到产量。然后,它将从协程返回,并基于产量将其放置到堆栈上。如果生成null,则它将在下一帧再次运行。有许多不同的YieldInstruction可以从协程返回,您可以阅读更多关于它们的信息 here and through the related links . 一旦协程已经产生,主线程将继续运行。在下一帧中,Unity将找到堆叠的协程,并从他们在屈服时停止的位置调用它们。 如果您的协程从未超出范围,那么您基本上创建了一个更新方法。 协程的目的是在不阻塞程序的情况下执行可以跨越一段时间的操作。 重要事实:这不是多线程。 |
![]() |
2
10
你说得对。
“为什么这是必要的”可能是因为您希望对象每帧移动一个输入。没有
更重要的是:看起来你想
|
![]() |
bjy0212 · 协同程序运行时Unity游戏停止 2 年前 |
![]() |
Robin · 使用Kotlin协同例程时房间dao类出错 7 年前 |
![]() |
Praytic · 协同路由如何比线程更快? 7 年前 |
![]() |
Gaming Gecko · 从协同程序播放Unity动画 7 年前 |