协程:协同程序。
协程的使用前提:直接或间接的继承MonoBehavior才可以使用。
不足:会产生外的开销。
协程方法与普通方法的区别:
被调用时:普通方法被调用时,原来执行的部分保留现场,停止执行,然后去执行要调用的方法,并且,被调用的方法执行完之后才能返回到调用前的状态接着往下执行。。。协同方法的执行是不用等协同方法执行完再执行调用之前原来方法的代码。 而是两者异步执行。为了方便理解,这里可以把原方法(调用普通方法和协同方法的方法设为main。 普通方法叫Function,协同方法叫CoroutineFunction). 具体如下图所示:
普通方法的调用:
协同方法的调用:
协同方法的使用规则:
1、返回值类型必须是IEumerator
2、有返回值,返回参数的时候用yield return ……
3、协程方法的调用用StartCoroutine(CoroutineMethod())
4、协成方法可暂停,用yield return newWautForSeconds(float f),参数单位是秒。
注:开启协程之后会继续运行主程序后面的代码,不会等协程方法执行结束后再回去执行主程序。两者异步执行。
协程的使用:Unity中提供了三个方法,分别负责协程的开启,协程的停止,全部协程的停止。
协程的启动:StartCoroutine();
协程的停止:StopCoroutine();
全部协程的停止:StopAllCoroutine();