StartCoroutine就是开启一个协程.
yield return 保存函数状态,迭代器块返回调用迭代的地方。等待下次调用继续从当前位置处理。
协程
- 可以使用 StopCoroutine 和 StopAllCoroutines 来停止协程。 当用 SetActive(false) 禁用某个协程所附加到的游戏对象时,该协程也将停止。调用 Destroy(example)(其中 example 是一个 MonoBehaviour 实例)会立即触发 OnDisable,并会处理协程,从而有效地停止协程。最后,在帧的末尾调用 OnDestroy。
- 通过在 MonoBehaviour 实例上将 enabled 设置为 false 来禁用 MonoBehaviour 时,协程不会停止。
调用函数时,函数将运行到完成状态,然后返回。这实际上意味着在函数中发生的任何动作都必须在单帧更新内发生;函数调用不能用于包含程序性动画或随时间推移的一系列事件。例如,假设需要逐渐减少对象的 Alpha(不透明度)值,直至对象变得完全不可见。
协程就像一个函数,能够暂停执行并将控制权返还给 Unity,然后在下一帧继续执行。在 C# 中,声明协程的方式如下:
IEnumerator Fade()
{
for (float ft = 1f; ft >= 0; ft -= 0.1f)
{
Color c = renderer.material.color;
c

本文详细介绍了Unity中的协程(Coroutines)如何工作,包括如何使用StartCoroutine、yieldreturn和StopCoroutine进行控制。协程允许在函数中暂停执行,进行延迟操作或按帧执行复杂动画。通过yieldreturn null实现每帧执行,yieldreturn new WaitForSeconds延迟指定秒数执行,或yieldreturn StartCoroutine启动另一个协程。协程在游戏开发中常用于实现平滑动画过渡、定时任务等场景。

1729

被折叠的 条评论
为什么被折叠?



