Coroutine 称为协同程序或者协程,协同程序可以和主程序并行运行,和多线程有些类似。协同程序可以用来实现让一段程序等待一段时间后继续运行的效果。例如,执行步骤1,等待3秒;执行步骤2,等待某个条件为 true;执行步骤3......
在Unity3D 中,使 MonoBehaviour.StartCoroutine 方法即可开启一个协同程序,也就是说该方法必须在 MonoBehaviour 类或继承于 MonoBehaviour 的类中调用。
MonoBehaviour-StartCoroutine - Unity 脚本 APIhttps://docs.unity.cn/cn/current/ScriptReference/MonoBehaviour.StartCoroutine.html
使用协同程序
在 C# 中,协同函数的返回类型必须为 IEnumerator。
1.新建脚本 CoroutineExample,代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CoroutineExample : MonoBehaviour
{
IEnumerator Start()
{
Debug.Log("Start: " + Time.time);
yield return StartCoroutine(WaitAndDebug());
Debug.Log("Done: " + Time.time);
}
IEnumerator WaitAndDebug()
{
yield return new WaitForSeconds(5);
Debug.Log("WaitAndDebug: " + Time.time);
}
2.运行结果
(可以随便把脚本绑在个物体上)