包含此页的版本:
不含此页的版本:
协程在yield return陈述。一个yield return null暂停协程的执行,直到下一帧。但是yield return还可以返回 Unity 编辑器或运行时的指令,例如,等待指定的时间量或直到满足条件,然后再恢复协程的执行。
Unity 有一组自定义收益指令,源自UnityEngine.YieldInstruction可用于在指定时间后、满足指定条件或在播放器循环中的特定点恢复。
| 指令 | 描述 |
|---|---|
AsyncOperation |
暂停协程并在异步作完成时恢复,例如加载场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息 请参阅术语表或资产。 |
WaitForEndOfFrame |
挂起协程,并在帧结束时恢复,在所有渲染和 GUI 事件之后。 注意: WaitForEndOfFrame当编辑器处于批处理模式时,永远不会在编辑模式下运行,即使脚本标记为[ExecuteInEditMode]或[ExecuteAlways]. |
WaitForFixedUpdate |
挂起协程,并在下一次物理更新结束时恢复,在所有物理计算之后恢复。 |
WaitForSeconds |
暂停协程并在指定的秒数后恢复,同时考虑时间尺度。 |
WaitForSecondsRealtime |
暂停协程并在指定的秒数后恢复,忽略时间尺度。 |
WaitUntil |
挂起协程,并在提供的委托计算结果为true. |
WaitWhile |
挂起协程,并在提供的委托计算结果为false. |
如需了解这些收益说明的更多信息和示例用法,请参阅其 API 参考页面。
有关不同协程在 Player 循环中恢复位置的可视化表示,请参阅 Event 函数执行顺序中的图表。
Unity Test Framework 测试,标有[UnityTest]属性作为协程运行。测试框架包添加了对其他良率指令的支持,以控制 Unity 编辑器的测试,并提供了定义自定义良率指令的可能性。
| 指令 | 描述 |
|---|---|
EnterPlayMode |
为 Unity 编辑器创建进入 Play 模式的 yield 指令。 |
ExitPlayMode |
为 Unity 编辑器创建退出播放模式的良率指令。 |
RecompileScripts |
触发重新编译脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息 请参阅术语表在 Unity 编辑器中。 |
WaitForDomainReload |
将脚本的执行延迟到传入域重新加载之后。 |
有关 Unity Test Framework 提供的产量说明的更多信息,请参阅编辑器的产量说明。
编辑器协程包添加了对在 Unity 编辑器的编辑模式下运行的协程的支持。该软件包包括编辑模式协程的附加产量说明。
| 指令 | 描述 |
|---|---|
EditorWaitForSeconds |
在指定的秒数后恢复 EditorCoroutine,同时考虑时间刻度。 |
有关更多信息,请参阅编辑器协程。
当您在批处理模式下运行独立播放器时,所有运行时协程产量指令都会正常运行。
如果你在批处理模式下运行编辑器,并且你的项目具有标记为[ExecuteInEditMode]或[ExecuteAlways]因此,它们也在编辑模式下运行,这些脚本中的所有运行时协程都会在编辑模式下运行,但WaitForEndOfFrame.这是因为并非所有 Unity 子系统在编辑模式下都像在运行时那样定期更新。有关更多信息,请参阅[ExecuteAlways]API 参考。
[ExecuteAlways]API 参考