Version: 6000.3
语言: 中文
分析协程
与 Web 服务器交互

收益率指令参考

协程在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 函数执行顺序中的图表。

UnityTest 良率说明

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 参考。

其他资源

分析协程
与 Web 服务器交互