赞
踩
不管是对于网络请求或加载资源时以及一些相对来说比较耗费时间的运算时,我们不希望会全部写在Update中来占用大量主线程的资源。
协程 : IEnumerator 本质上其实是C#中的一个迭代器
如何使用协程 :
开启协程 StartCoroutine(“协程方法名_string “);
开启协程 StartCoroutine(协程方法());
关闭协程 StopCoroutine(“协程方法名_string “);
当我们使用协程的过程中需要等待一些操作完成再进行下一步操作时,提供了以下方法:
yield return (null & 任意数字);// 下一帧再进行下一步; yield break; //直接结束该协程; yield return "SomeAsyncOption";//等待某个指定异步操作完成后进行下一步; yield return (WWW & WebRequest);//等待当前请求完成后执行下一步; yield return StartCoroution("SomeIEnumerator");//等待某个协程执行完毕后再进行下一步; yield return new WaitForEndOfFrame();//等待帧结束直到所有的摄像机和GUI被渲染完成后,在该帧绘制在屏幕上之前执行; yield return new WaitForSeconds(float);//等待float秒之后继续执行,在所有的Update函数完成调用的那一帧之后(这里的时间会受到Time.timeScale的影响); yield return new WaitForSecondsRealtime(float);//等待float秒之后继续执行,在所有的Update函数完成调用的那一帧之后(这里的时间不受到Time.timeScale的影响); yield return WaitForFixedUpdate();//等待下一次FixedUpdate开始时再进行下一步; yield return new WaitUntil(Func<bool> parameter);//当parameter返回为True时进行下一步; yield return new WaitWhile(Func<bool> parameter);//当parameter返回为False时进行下一步;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。