位置: 编程技术 - 正文

Unity3D: StartCoroutine 和 yield return 深入研究

编辑:rootadmin

推荐整理分享Unity3D: StartCoroutine 和 yield return 深入研究,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

原文地址: return表面意思很好理解,StartCoroutine就是开启一个协程,yield return 是迭代器块返回调用迭代的地方。 是吧?不知道你什么感觉,反正我觉得,还是需要深入研究一下的。OK,here we go!

首先,先看一下StartCoroutine在Unity官方的解释。

意思是:一个协程的执行可以在任何地方用yield语句来暂停,yield return的值决定了什么时候协程恢复执行。协程在协调在几帧中执行的操作时有极大的用处.协程几乎没有任何性能开销。

StartCoroutine一般都会立即返回,然而你也可以获得返回结果的值。但是这一步会等到协程结束执行才能生效。

OK,意思应该不难理解,根据他的意思我们来分析一段程序。

运行结果是:

start1

test1

start2

Unity3D: StartCoroutine 和 yield return 深入研究

test2

这下就一目了然了,当StartCoroutine刚调用的时候,可以理解为正常的函数调用,然后接着看调用的函数里面。

当被调用函数执行到yield return null;(暂停协程,等待下一帧继续执行)时,根据Unity解释协同程序就会被暂停,其实我个人认为他这个解释不够精确,先返回开始协程的地方,然后再暂停协程。也就是先通知调用处,“你先走吧,不用管我”,然后再暂停协程。。怎么?不信?那我们再写个demo验证一下。

执行结果:

start1

test1

start2

test2 (这个test2是等待三秒后才打印出来的)

正好顺便验证了“yield return的值决定了什么时候协程恢复执行”这句,其实yield return后面的值可以后很多用法,可以看这个帖子: return StartCoroutine,第一个StartCoroutine会等到第二个StartCoroutine中所有代码结束后再继续执行,而第二个StartCoroutine中的yield语句会先返回第一个,然后立即返回他的调用处,也就是调用处会继续执行,而第一个StartCoroutine会等待第二个执行完再继续执行。

如果还想继续深入,可以看一下C#中的迭代器,那里面说明了yield和IEnumerator根本到底是什么。

OK,今天就说到这。Good Luck!

【Unity3d】学习笔记(9)——写一个计时器工具 今天看到一个Unity3D的机试题:写一个计时器工具,从整点开始计时,格式为:::于是试着实现了一下。创建工程后添加一个Cube物体,为其添加一个

Unity3D项目优化:从Draw Calls到GC 前言:刚开始写这篇文章的时候选了一个很土的题目。。。《unity3d优化全解析》。因为这是一篇临时起意才写的文章,而且陈述的都是既有的事实,因

Unity3D游戏开发之反编译AssetBundle提取游戏资源 各位朋友,大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是

标签: Unity3D: StartCoroutine 和 yield return 深入研究

本文链接地址:https://www.jiuchutong.com/biancheng/378740.html 转载请保留说明!

上一篇:Unity中删除child(unity删除对象)

下一篇:【Unity3d】学习笔记(9)——写一个计时器工具(unity3d入门视频教程)

  • 增值税一般纳税人税率
  • 支付宝商户服务电话
  • 工会经费如何申报?
  • 贷款公司股权转让合法吗
  • 企业支付宝买东西
  • 建筑服务适用简易计税吗
  • 销售报废车辆按多少计提销项税额
  • 现金流量表上的期末现金余额等于___
  • 应付账款周转次数公式的理解
  • 工资分开发的奖金具体个税是多少?
  • 研发部门属于哪个会计科目
  • 企业只有收入没有支出是否违规
  • 委托代销售应确认什么
  • win 11操作系统
  • 华硕主板进入bios设置
  • 如何冲回以前年度账户
  • 佣金回扣如何做账
  • 需要税务部门解决的问题
  • 合并报表的收入是相加吗
  • 暂估入库怎么处理
  • 公司买的理财产品怎么做账
  • 企业所得税汇算清缴补缴税款分录
  • bios界面进入
  • php密码加密和解密
  • linux网卡lo
  • 按实际成本结转6日和7日的材料采购成本
  • 增值税税率为零的有哪些项目
  • wordpress的文章在数据库里吗?
  • 创建自定义对象主要哪几种方法,并写出基本语法结构?
  • 联营企业分得的利润应计入
  • 代开发票要带什么资料去税务局办理?
  • 企业所得税汇算表
  • Laravel 5.5 的自定义验证对象/类示例代码详解
  • 明细分类账户定义
  • php超时限制
  • 设计公司的设计提成方案
  • 在php中提供了什么函数用于删除数组中的元素
  • spring boot 2.3.0
  • 工业企业应付账款周转率多少合适
  • _ html
  • 贸易公司结转销售成本凭证怎么做
  • 公章盖的字不完整有效吗
  • 退货的会计处理分录
  • 公司给员工的购房补贴
  • 农村信用社可计算利息吗
  • 劳务报酬所得如何申报
  • 货物什么情况下需要分批运输
  • 外币账户结汇至人民币账户
  • 现金折扣与商业折扣的计算
  • 归还银行贷款利息计入
  • 小微企业可以享受六税两费吗
  • 工资社保医保计算
  • 收到红字增值税发票哪里查
  • 新企业设置账簿
  • sql分组having
  • mysql 索引 语句
  • bios里怎么找不到usb启动
  • MacOS X Yosemite升级后postgresql启动报错的解决办法
  • linux配置光纤
  • linux文件目录的含义
  • root什么玩意
  • win8使用教程和技能
  • perl 获取数据库查询结果
  • jq读取json
  • 基于jPlayer三分屏的制作方法
  • node.js连接不上数据库
  • 安卓中的多线程
  • js必须掌握的知识点
  • js字符串的操作方法
  • unity 3d代码
  • JavaScipt中Function()函数的使用教程
  • javascript怎么学
  • radio js取值
  • javascript语法总结
  • 个人所得税子女教育到多大结束
  • 北京税务局地税电话
  • 购置税缴费方式
  • 阁楼交取暖费吗合法吗
  • 安徽地税局领导班子名单
  • 济南市市中区二手房
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设