位置: 编程技术 - 正文

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

  • 安装服务费税率是多少
  • 印花税的申报依据是什么
  • 一般纳税人收到普票可以抵扣吗
  • 金税四期对增值税发票的比对
  • 增值税发票认证平台
  • 附加税预缴分录
  • 出口税增加
  • 税负率怎么算计算公式举例说明
  • 融资租入固定资产属于资产吗
  • 收到货物记账凭证
  • 用现金支付购买增值税应税服务
  • 购买办公楼支付相关手续费
  • 销售原材料的账务处理
  • 企业给员工的异地安家费交个税吗?
  • 施工工人个税怎么计算?
  • 国家税务总局2011年第25号公告
  • 旅游业相关行业
  • 发票月初抄税流程
  • 公司投资股票要交什么税
  • 财务负责人必须是本公司员工吗
  • 房地产预售阶段增值税进项
  • 公司为员工交的五险一金到底是怎么回事
  • 盈亏平衡点的计算公式字母
  • 其他权益工具通俗
  • 个人所得税款项性质
  • linux安装常用命令
  • 苹果电脑mac系统怎么升级
  • 新买的苹果电脑需要注意什么
  • php session存储方式
  • 坏账核销能否增加利润
  • 进项税额转出和不抵扣的区别
  • springboot用法
  • ping命令可以用来测试什么
  • 其他应收账款怎么做预算会计分录
  • 企业注销时应收账款需要交税吗
  • 无形资产和固定资产减值准备可以转回吗
  • 一字节的范围
  • python Timer定时器如何使用?
  • phpcms怎么样
  • 海外工作工资税收问题
  • 销售送客户礼物
  • 季度所得税申报怎么弥补以前年度亏损
  • 出口货物用途
  • 社保计提少了怎么办
  • 建筑行业怎么确认收入
  • 工程结算怎么结转收入
  • 外币资本金入账汇率怎样选择
  • 收到上年度企业所得税退税怎么做账
  • 预缴所得税年底怎么算
  • 工程施工中购入固定资产
  • mysql索引类型及原理
  • mysql启动服务器失败
  • windows帮助文件是什么
  • 深入Windows 第七版 第二部分
  • ubuntu 14.10
  • 两台苹果怎么用电脑把数据同步
  • centos安装rpm文件
  • win10周年更新版是什么意思
  • xp系统安装版合集
  • winxp系统开机启动项
  • mac 特殊符号
  • 潘 pan
  • 如何判断电脑是不是linux
  • window10外接摄像头怎么启用
  • win7正版提示
  • 计算机无法从休眠
  • js判断浏览器是否为ie
  • ubuntu sudo apt-get install
  • 在javascript中
  • shell if -lt
  • 安卓手机怎么导入地图
  • 教程java
  • javascript总结笔记
  • 个人房屋出租给公司怎么开发票
  • 税款怎么查询
  • 广西国税官网
  • 枸杞税收分类是什么
  • 在本地买车怎么上外地牌照
  • 餐饮发票怎么看真假
  • 税控防伪清单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设