位置: 编程技术 - 正文

Unity3D: StartCoroutine 和 yield return 深入研究

发布时间:2024-02-27

推荐整理分享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入门视频教程)

  • 领用工程物资的账务处理
  • 一次性扣除固定资产政策案例
  • 收到返款计入什么科目
  • 支票上的法人章和财务章是央行盖吗
  • 自然人税收管理系统怎么申报个税
  • 对公账户卡号是私人账号
  • 一般纳税人转登记为小规模纳税人
  • 对外投资借款费用计入
  • 支付金融机构手续费计入什么费用
  • 应收账款多记如何调账?
  • 公交补贴收入账务处理怎么做?
  • 医保卡划入账户金额
  • 企业注销未分配利润要交个人所得税吗
  • 过路费是地税还是国税
  • 利润表中所得税费用为负数是什么意思
  • 海关进口增值税专用缴款书如何抵扣
  • 房地产企业土地增值税清算案例
  • 科技型中小企业认定需要什么条件
  • 注册会计师考点分析
  • 免税销售额需要价税分离吗
  • 跨年度暂估未取得发票如何处理
  • 2021年6月更新
  • 资产负债比和资产负债率
  • 如何在数据透视表中增加一行
  • 旧房转让土地增值税计算案例
  • 新车发生事故报废保险怎么赔付
  • win11专业版网卡安不了
  • PHP:stream_filter_remove()的用法_Stream函数
  • 折旧计算表属于外来原始凭证吗
  • 金融机构贷款利息规定
  • php用img显示图片
  • Realsense D455/435内参标定以及手眼标定
  • 长期股权投资采用权益法核算
  • 结转损益类收入科目分录
  • 电子税务局已申报信息查询
  • 滑模控制理论与应用研究pdf
  • 计算机视觉算法
  • 原始凭证一般没有
  • 对公账号里面的钱会扣税吗
  • 开会旅游的费用怎么算
  • 材料采购是什么类科目
  • 购买垃圾桶计入什么科目
  • 帝国cms如何使用
  • 材料已经入库但是没有发票怎么做账
  • 品种法成本核算的程序有哪几步?
  • 只有劳务报酬 能否扣5000
  • 个人对企业的例子
  • sqlserver函数语法
  • 以前年度损益调整账务处理分录
  • 发票开错是不是可以作废?
  • 坏账收回来了怎么处理
  • 旅游费的发票可以进成本吗?
  • 特许权使用费税前扣除
  • 公司对帐的内容怎么写
  • OBJECTPROPERTY与sp_rename更改对象名称的介绍
  • mysql导出语句
  • 怎么操作win10系统
  • win7命令提示符怎么打开
  • 苹果mac系统复制粘贴不了
  • Win10 Mobile 10572新增实用功能:未接电话会显示响铃的次数
  • win8.1安装更新卡住
  • win8n
  • win8系统开启摄像头权限
  • linux里面怎么截屏
  • perl如何使用
  • 方块滚动代码怎么写
  • jquery鼠标点击
  • nodejs v8
  • nodejs 异步io底层原理
  • event_base_new
  • nodejs fs.open
  • python标准模板库
  • jquery和dom对象之间怎么转换
  • javascript中checkbox使用方法简单实例演示
  • android多个dex
  • 登录电子税务局显示时间错误如果解决
  • 怎么去税务局领税盘
  • 申报印花税显示未维护营行业信息
  • 湖南低保查询网上查询
  • 代办营业执照代办人有什么法律责任
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号