位置: 编程技术 - 正文

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入门视频教程)

  • 增值税应纳税额是要交的钱吗
  • 应收暂估账务处理
  • 增值税申报表在哪里打印
  • 企业所得税返还计入什么科目
  • 房地产公司预分红犯法吗
  • 用现金暂付职工差旅费3000元
  • 企业所得税税前扣除和不扣除的区别
  • 预付账款余额怎么算
  • 合同额在3000以下的是否缴纳印花税?
  • 营改增后还要交企业所得税吗
  • 营改增后租金如何交税
  • 申报截止日期前还能用吗
  • 中标服务费直接按开票金额付款吗
  • 企业必须要掌握哪些技能
  • 坏账准备金最新计算公式
  • 广告业发生错账怎么办
  • 预计负债 负债
  • 会计人员需要承担的责任
  • 工资计入劳务成本
  • 酒店行业增值税加计抵减是10%还是15%
  • 电子承兑汇票怎么用
  • 周转材料月末有余额吗
  • macbook 运行windows
  • win10如何禁止
  • 结构性存款利息增值税
  • macOS Big Sur 11.2 公测版 beta 1怎么更新?
  • yii2关联查询
  • 资产负债表中各项目的期末余额
  • 房地产开发企业销售自行开发的房地产项目
  • 企业合并的合并范围
  • php 错误提示
  • uniapp面试题必问的坑
  • 小规模建筑公司经营范围大全
  • html5 function
  • 行政事业性收费是什么意思
  • java一天速成
  • js回调函数如何返回值
  • 生育津贴到公司账户了多久给个人
  • 公司亏损后盈利分红
  • 企业缴纳个人所得税客户端
  • 现金存货盘盈盘亏计入什么科目
  • 哪些票据属于会计票据
  • 农产品开具发票税率是多少?
  • 应收账款全额计提的条件
  • 以前年度管理费用
  • 出口收汇核销单的作用
  • 个体户查账征收个人所得税税率
  • 如果对装修费用有异议怎么办
  • 电子承兑汇票的风险有哪些
  • 款已付未收到发票
  • 销售返利的会计处理方法
  • 车子的上牌费要计入成本吗
  • 股东利润分配预缴税款
  • T-SQL中使用正则表达式函数
  • win10系统提醒
  • win7系统开机蓝屏怎么修复
  • 繁体软件在简体运行
  • ubuntu /opt
  • 系统维护的主要内容有哪些
  • microsoft ime进程
  • win7电脑711
  • Skype.exe - Skype是什么进程 有什么用
  • Win10 Mobile 10586.36预览版怎么更新?
  • windows 8怎么样
  • unity怎么输出文件
  • 使用权资产
  • opengl es programming guide
  • js基于贪心算法实验报告
  • python 安装setup
  • 基于nodejs的项目
  • css放大字体
  • unicode编码实现方案
  • python2网络编程
  • nodejs中向HTTP响应传送进程的输出
  • node.js+captchapng+jsonwebtoken实现登录验证示例
  • unity物体碰撞爆炸
  • 土地增值税法定扣除项目
  • 江苏省国税务局
  • 公司购买的汽车可以一次进入费用吗
  • 营业费用指哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设