unity中的 yield,延迟的实现

unity中延迟几秒的实现,专门设计了一种模式,叫做Coroutines & Yield 协同程序 & 中断

Coroutine:协同程序

Yield:中断

样例:

//yield在c#中只能放在IEnumerator中,其他类型中会报错
IEnumerator do(){
    print("begin");
    yield return new WaitForSeconds(5);
    print("end");
}
//使用执行协同程序语句StartCoroutine执行IEnumerator方法
void Start(){
    StartCoroutine(do());
    //StartCoroutine("do", 2.0F);变体使用,性能开销大
}

原理:

StartCoroutine执行了一个复杂的协同过程,wait系列,WWW类,都使用了这种特殊处理;

unity中的 yield,延迟的实现_第1张图片

你可能感兴趣的:(unity中的 yield,延迟的实现)