| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> unity协程 -> 正文阅读 |
|
[游戏开发]unity协程 |
unity中所有脚本运行公用一条主线程,而协程是开辟的伪线程。这个伪线程可以让一个方法分多次执行,相当于让主线程劈几个叉。比如start是刚运行unity就瞬间执行完了,而在start中加协程可以让start“分步”执行。 简单来讲: void start() { 1号协程代码*******; print("11111"); 2号协程代码********; print("222222"); 3号协程代码********; print("33333333"); ............... } 加了协程之后不会直接出现11111? ? ?2222222? ? ? ? ? ?3333333 二十根据协程代码的要求(比如延迟几秒输出/等某个函数执行完毕......) 就会变成:111111? ?N秒后再打印22222222? ? ? ? ?N秒后再打印333333 //协程总结: 三个重点:startcoroutine() 和yield return ***和Ienumberator 1.Ienumberator//将别人变成协程(例如给函数加ienumberator就将这个函数变成可调用的协程) 2.Yield return ***://就是等待,等待yield return后面的***中内容执行完毕之后,再执行本代码后面的代码。(其实可以不用startcoroutine()就可以直接使用yield等待协程,但是调用别的函数中的协程就必须用startcoroutine了) 3.Startcoroutine();//就是开启协程(主要是调用别的函数中的协程,比如update,start等) 最最重要的就是yield return new*** 如下:
? ? 常用的: yield return new waitforseconds(2);//等待两秒后执行后面的代码 Yield return new waitforupldate();当场景中fixedupdate执行完之后,再执行下面的代码,若无fixedupdate则此行仅仅停了一帧而已。 Yield return null;//一般作为让本函数能作为协程调用而写的,没啥用,跟ienumerator一样 Yield return startcoroutine(find());//将函数find()执行完毕之后,再执行后面的代码 停止协程: 注意:只有删除协程所在对象/删除协程所在脚本/上面这俩stop....才能停止协程,否则无法停止协程。 //多脚本公用一个协程可以定义一个静态协程(跨类) //目前无法检测谁有协程,有几个协程! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/28 2:38:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |