协同程序
即在主程序运行时同时开启另一端逻辑处理,来协同当前程序的执行。
但是它与多线程程序不同,所有的协同程序都是在主线程中执行的,他还是一个单线程程序。
再Unity中可以通过 StartCoroutine 方法来启动一个协同程序。
StartCoroutine 方法为 MonoBehaviour 类中的一个方法,也就是说该方法必须在 MonoBehaviour 或继承与 MonoBehaviour 的类中调用。
StartCoroutine 方法也可以使用返回值作为 IEnumerator 类型方法的参数。具体操作时可以使用如下的C#代码片段来实现。
using UnityEngine; //引入系统包 using System.Collections; //声明类 public class NewBehaviourScript { //重写 Start 方法 void Start() { //开启协同程序 StartCoroutine(doThing()); } //声明 doThing 方法 IEnumerator doThing() { //打印提示信息 Debug.Log("dothing"); yield return null; } }
协同程序中可以使用 yield 关键字来中断协同程序,也可以使用 WaitForSeconds 类的实例化对象让协同程序休眠。
具体操作时可以使用如下代码片段来实现
using UnityEngine; //引入系统包 using System.Collections; //声明类 public class NewBehaviourScript { //重写 Start 方法 void Start() { //开启协同程序 StartCoroutine(doThing()); } //声明 doThing 方法 IEnumerator doThing() { //协同程序休眠两s yield return new WaitForSeconds(2); //打印提示信息 Debug.Log("dothing"); } }