位置: 编程技术 - 正文

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

  • 制造业做贸易出口可以退税吗
  • 企业生产经营管理包括哪些
  • 应交税费转营业外支出
  • 地方税概述?
  • 兼职人员工资需要申报个税吗
  • 银行回单电子退库是什么意思
  • 固定资产二级科目取消原因
  • 每个季度申报怎么申报?
  • 附加税计提多了怎么调整税额
  • 增值税发票税控开票软件怎么下载
  • 信用减值损失借贷方表示什么意思
  • 高速公路上的机电一体化有哪些
  • 购买金税盘需要带什么
  • 税务机关如何正确行使代位权
  • 固定资产账面价值公式
  • 商业汇票贴现怎么做
  • 五证合一流程
  • 融资发票是什么
  • 没有运输经营范围能不能开运输发票
  • 开出增值税发票没收到怎么抵扣进项税?
  • 为什么报税资料老是显示有
  • 固定资产一次性计入费用的账务处理
  • 公司集体活动的目的与意义
  • 机票的进项
  • 手续费进项可以抵扣吗
  • 小规模纳税人增值税免征额
  • 1697510110
  • 计提员工社保拿什么做原始凭证?
  • 端游上古世纪
  • safari浏览器怎么快进
  • 发票开了对方未付款
  • 本月未抵扣完的进项税是否转出
  • php+mysql+apache
  • 企业如何转让
  • 定额征收的个体户怎么做账
  • nodejs bull
  • vue3.0配置
  • 日本蜡烛图形
  • uni app ios
  • 车间打杂工
  • 应交税费为负数在资产负债表里怎么填
  • springboot怎么配置拦截器
  • 详解九章算法
  • mongodb如何查询数据
  • sqlserver调用存储过程写法
  • php增删改查语句
  • 预付账款的会计编码是多少?
  • 直播属于什么行业门类
  • 应付账款贷方余额怎么处理
  • 固定资产提取折旧最新规定
  • 可抵扣进项税有哪些项目
  • 消费税纳税人的具体纳税期限由主管税务机关
  • 办理地税手续费
  • 办公室购花卉会计处理
  • 开具发票的原则有哪些呢?
  • 车间检测费会计分录
  • 机场员工家属机票
  • 应收账款入账价值包括现金折扣吗
  • 工程招标费用由谁支付
  • 商标无形资产摊销计入什么科目
  • 核定征收的小微企业
  • mac系统怎么样
  • linux命令ethtool
  • linux管理工具有哪些
  • ubuntu 12.04使用QQ截图安装教程
  • win7更新和安全在哪里
  • win10资源管理器在哪里打开
  • win10系统附件游戏被删除
  • linux文件一般放哪里
  • 如何设置edittext控件中的文字
  • python写一个备份文件功能
  • django自定义模板标签
  • windows下使用什么命令查看监听端口
  • 遮罩层 css
  • 用python写一个程序
  • js操作对象的方法
  • javascript新手教程
  • 江西省税务局发票查询系统
  • 山东税务师协会官网
  • 内审工作流程及内审中常见的问题
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设