Unity协程的作用
来源:互联网 发布:网络信息 编辑:程序博客网 时间:2024/06/06 05:54
1. 协程不是多线程!!! 协程还是在主线程里面,这点十分重要,不要被网上其他资料误导。
2. 协程不是只能做简单的延迟,虽然你可能用过下面的延迟几秒的代码,但是协程的价值在这里完全体现不出来。
void Start() { StartCoroutine(coRoutine()); } IEnumerator coRoutine() { yield return new WaitForSeconds(1); }
因为其实这种只是暂停几秒,完全没必要单独开一个协程,下面这种方法也可以实现
IEnumerator Start () { // StartCoroutine(coRoutine()); Debug.Log("1"); yield return new WaitForSeconds(3); Debug.Log("2"); }
是不是很意外,start竟然也可以return,当然一般不这么做,这个例子只是为了说明协程不只是用来做延迟的
3. 协程的真正用途是分步做一个比较耗时的事情,比如游戏里面的加载资源
private int num = 0;private const int total=30;void Start() { StartCoroutine(coRoutine()); } IEnumerator coRoutine() { while (num<total) { num++; Debug.Log(num); yield return null; } }void Update () { Debug.Log("update!");} void LateUpdate() { Debug.Log("lateUpdate!"); }
上面的代码是个简单的例子,比如我们加载的资源有30个(total),但是一次加载完毕会耗费大量的时间,不可能让玩家在start中等待这么久,这时候协程的作用就出现了,协程是每帧lateUpdate之前执行yield return之前的代码,lateupdate之后执行yield return之后的代码,相当于每帧循环一次(前提是你的协程有循环体,否则一帧就执行完了),具体可以复制我的代码看一下日志,这样就不会卡在这加载30个资源这里,而是你在update里面继续做你的事情,我每次只加载1个,加载1个耗时显然远远小于30个。
上面的例子具体可以对应进入一张地图加载NPC,当你进入一张地图后,如果一次性加载30个NPC,你可能就卡在进地图的地方,等待这30个NPC全部加载出来之后才能行动,但是用了协程,你可以移动,可能你移动一步(或者几步),加载一个NPC,实际上你根本体会不到移动过程中有停顿的现象。
转载地址:https://www.cnblogs.com/InitialD/p/7348875.html
阅读全文
0 0
- Unity协程的作用
- Unity协程实际作用
- Unity导出IOS symlink Unity libraries的作用
- Unity 动态加载Prefabs的作用
- Unity项目内各种文件的作用
- Unity工程中 .Meta 文件的作用
- unity shader _MainTex_TexelSize 和 UNITY_UV_STARTS_AT_TOP 的作用
- unity shader _MainTex_TexelSize 和 UNITY_UV_STARTS_AT_TOP 的作用
- unity执行顺序以及unity协程的使用
- Unity的Scene视图中Irradiance模式的作用
- 【Unity】 Transform.TransformDirection作用
- unity 3d 中的quaternion.Slerp的作用以及用法
- 【Unity Shader】浅析Unity shader中RenderType的作用及_CameraDepthNormalsTexture
- 【Unity Shader】浅析Unity shader中RenderType的作用及_CameraDepthNormalsTexture
- unity的协程的用途
- Unity里的协程Coroutines
- 理解Unity中的协程的使用
- unity中的简单的协程用法。
- spss
- 狸窝
- nipype处理核磁数据(三)——MATLAB、SPM、ANTs、AFNI的安装
- 统计学学习笔记——(7)抽样分布
- 第一个博客测试
- Unity协程的作用
- 基于HDP2.6.0.3-8的Hadoop TestDFSIO、mrbench和nnbench是三个广泛被使用的测试
- vue 拖拽功能
- 项目打包,postman提交json数据
- UE4_ar项目经验
- 设计模式之单例模式
- zend studio打开右侧方法预览框
- 机器学习第二章模型评估与选择笔记(前篇)
- php 输出错误信息及设置错误级别