Unity+C#:协程

协程全称是协同程序,它的作用是在主程序上开启一段协同程序,看起来有点像多线程,但其实它还是运行在主线程之上的。

协程有几个特点:

1.它有一个特定的返回类型叫做IEnumerator

2.因为特殊的返回类型所以必须要有返回,但返回不是简单的return而是yield return后面可以是null,可以是WaitForSeconds(等待多少秒),WaitForFixedUpdate(在FixedUpdate每一帧之后),还可以是另外一个协程……

3.协程的开启需要用StartCoroutine(里面可以写方法名,也可以直接调用方法),可以用Stop(All)Coroutine来停止

4.协程的逻辑根据暂停来,每次暂停都可以执行新的操作

5.协程不会因为yield return而中断执行,或者执行到一些没有用的代码就返回,它会继续执行到最后

下面演示一个简单的协程的使用

    void Start()
    {
        StartCoroutine(Test01());
        //StartCoroutine("Test01");
    }

    IEnumerator Test01(){
        Debug.Log("协同");
        yield return new WaitForSeconds(2f);
        Debug.Log("程序");
        yield return null;
        Debug.Log("继续运行");
    }

可以看到打印了“协同”后过了两秒才打印“程序”,而且即使后面是yield return null 它也继续执行了。

协程可以用来作为优化的一种手段,比如游戏中一些需要不断更新但又不需要像Update这么频繁的时候。

猜你喜欢

转载自blog.csdn.net/m0_61777011/article/details/124392852
今日推荐