位置: 编程技术 - 正文

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

  • 个人出售满两年和不满两年的住
  • 水电费分析小报
  • 小规模发票单张限额
  • 收到生育险报销会计怎么写摘要呢
  • 销售发票红冲会计分录怎么做?
  • 费用跨年入账所得怎么算
  • 补缴的以前年度的税费及滞纳金用更正申报企业所得税吗
  • 营改增之后账务怎么处理
  • 个体工商户交纳社保办法
  • 买烟酒开专票可以抵税吗
  • 建筑业开具发票新规定
  • 资产负债表的应收票据包括什么
  • 办税人员的职责和义务
  • 公司贷款评估费的做账
  • 人力资源部报销购买办公家具款
  • 计提税金及附加需要附原始凭证吗
  • 有哪些凭证
  • 银行有流水但是没有开票怎么做账
  • 结转应交增值税会计科目
  • 哪些收入要纳税
  • php开发用什么ide
  • 域名停靠是病毒吗
  • 误删的文件怎么撤回
  • w10的蜘蛛纸牌
  • php中字符串函数
  • 费用超额怎么写申请
  • executor进程
  • 利息费用可扣除什么
  • 往来款项账务处理
  • 泰姬陵 (© Michele Falzone/plainpicture)
  • uniapp 信息推送
  • 企业发生的现金折扣应计入什么费用
  • 林木业折旧年限
  • 微信小程序消息订阅怎么打开
  • 冲红的销项税怎么结转
  • anaconda3.5.2安装教程
  • python中文分词代码
  • javaweb项目简介
  • 最新前端面试题
  • 升级到miui14感觉耗电快了
  • 新公司不开户需要交税吗
  • mongodb数据库查询用多少存储
  • 工厂道路设计规范
  • 固定资产折旧范围口诀
  • 资本化支出影响营业利润吗
  • 未发工资怎么办
  • 合并抵消分录影响母公司总分类账吗
  • 预付款在会计里属于什么
  • 多计提的费用可以记收入吗会计分录
  • 长期待摊费用如何评估
  • 长期股权投资减值准备借贷方向增减
  • 被收购企业账务怎么处理
  • 被代持股份的股东需要负责吗
  • 结转损益不平是什么原因造成的
  • mysql 5.7.11 winx64快速安装配置教程
  • 快速解决小孩便秘
  • Linux下卸载MySQL数据库
  • 卸载步骤
  • windows保护电脑
  • windows8.1的设置在哪
  • windows中复制文件的几种方法
  • linux如何绑定域名
  • cocos2dx官方教程
  • jquery自执行
  • androidstudio调用so文件
  • 焦点轮播图代码
  • 飞机大战剧情102
  • 你有一份来信
  • jquery.css
  • javascript()
  • node.js和ajax的顺序
  • Python字符串大写
  • unity 5.4
  • 每天一篇日记100字
  • 五十八二
  • 大气污染物环保税计算
  • 上海交电费户号8位数
  • 土地增值税分期清算条件?
  • 一般纳税人办理退税流程及手续
  • 怎么判断增值税发票是否虚开
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设