文章目录


Unity协程是一个老生常谈的知识点了,但今天博主却差点被一篇文章忽悠了

那就是这句话:

为什么说这句话不对呢

那就是当遇到while时,我们再来检验这句话的正确性:

按上面那句话,应该每次yield return后,都会跳到StartCoroutine,去执行 print(111);

会无限次的执行Start里的方法。

private void Start()
{StartCoroutine(CalculateFramesPerSecond());print(111);
}private IEnumerator CalculateFramesPerSecond()
{while (true){yield return new WaitForSecondsRealtime(1.0f);print(222);}
}

但实际是这样嘛?

实际只输出了:

111
222
222
222
...

我们在做测试时也会发现,只有第一次执行了print(111),后面便不再执行了,后面每次都循环while里的内容。

那为什么会这样呢?实际上是:

yield return是等待的意思,当程序执行到yield return时,会先不执行下面的程序。返回去执行未执行完的程序。

当程序觉得等够了时间,诶,程序就回来执行yield return后面的东西了。

yield return并不是返回到StartCoroutine,yield return是等待。

大家还有什么问题,欢迎在下方留言!


如果你有 技术的问题 或 项目开发

都可以加下方联系方式

和我聊一聊你的故事

Unity⭐️当Unity协程遇到while相关推荐

  1. Unity C#笔记 协程详解(转)

    目录 什么是协程 多线程 协程 协程的使用场景 协程使用示例 Invoke的缺陷 协程语法 开启协程 终止协程 挂起 协程的执行原理 什么是协程 在Unity中,协程(Coroutines)的形式是我 ...

  2. Unity线程与协程

    文章目录 前言 一.unity真的不支持多线程吗? 1.unity中使用多线程 2.unity中多线程的停止 3.unity中使用多线程的问题 二.协同程序 1.协程的使用 2.协程的原理 总结 前言 ...

  3. unity如何解决协程开启频繁导致的程序卡顿

    unity如何解决协程开启频繁导致的程序卡顿 一.协程 协程并不会在Unity中开辟新的线程来执行,其执行仍然发生在主线程中.当我们有较为耗时的操作时,可以将该操作分散到几帧或者几秒内完成,而不用在一 ...

  4. Unity 新手入门 如何理解协程 IEnumerator yield

    Unity 新手入门 如何理解协程 IEnumerator 本文包含两个部分,前半部分是通俗解释一下Unity中的协程,后半部分讲讲C#的IEnumerator迭代器 协程是什么,能干什么? 为了能通 ...

  5. Unity 协程原理探究与实现

    目录 一.介绍 二.迭代器 三.原理 四.总结 一.介绍 协程Coroutine在Unity中一直扮演者重要的角色.可以实现简单的计时器.将耗时的操作拆分成几个步骤分散在每一帧去运行等等,用起来很是方 ...

  6. Unity 协程深入解析与原理

    先来直接放一段代码 1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 5 p ...

  7. Unity协程实现分析以及Lua协程与Unity协程的混合使用

    1,节选翻译一篇stackoverflow关于Unity协程实现的讨论 - The big clues are in the C# version. Firstly, note that the re ...

  8. Unity协程(Coroutine)原理深入剖析

    Unity协程(Coroutine)原理深入剖析 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 记得去年6月份刚开始实习的时候,当时要我写网 ...

  9. unity协程_[C#进阶]C#实现类似Unity的协程

    使用过Unity的同学一定知道,Unity提供了一套协程机制,简直不要太好用.但是这个协程依赖于Unity引擎,离开Unity就无法使用.那有没有办法实现不依赖Unity的协程呢?答案是当然阔以. 所 ...

  10. Unity的协程详解

    一.协程的定义 协程,即为协同程序. Unity中的协程由协程函数和协程调度器两部分构成.协程函数使用的是C#的迭代器, 协程调度器则利用了MonoBehaviour中的生命周期函数来实现. 协程函数 ...

最新文章

  1. 【算法】输入一个链表,反转链表后,输出新链表的表头。
  2. OSX EI Captain中安装Pear等三方软件不成功的解决方法
  3. 北大OJ(POJ 3237)鸡兔同笼
  4. ubuntu 11 mysql_Ubuntu 11.10是否包含MySQL 5.5?
  5. 【Oracle】重置参数
  6. 【原创翻译】深入理解javascript事件处理函数绑定三部曲(一)——早期的事件处理函数...
  7. centos 安装gcc
  8. SQlite数据库的C编程接口(四) 绑定参数(Bound Parameters) ——《Using SQlite》读书笔记
  9. 数据库事务的四大特性,四种隔离级别,如何避免脏读、不可重复读、幻读(如何加锁)?
  10. 网站改造为百度智能小程序教程,适合所有网站封装
  11. 简单一招能让你的浏览器下载速度提升几十倍,从此弃用IDM等下载器
  12. 大数据论文_02_MapReduce(个人总结)
  13. jdk文档下载(html格式)
  14. UEBA架构设计之路3:复杂事件处理引擎
  15. Django永久重定向问题
  16. OCT病灶分割论文泛读
  17. Python账号密码登录
  18. 《Microduino实战》——2.3 Microduino STM32核心系列
  19. 如何在生产环境使用devtools?
  20. linux蓝牙服务关闭,使用linux的hciconfig命令配置蓝牙设备

热门文章

  1. python将图片转换成素描和漫画格式
  2. mdbook-pdf: 用于生成 PDF 文件的 mdBook 后端
  3. JS获取当前时间(年月日时分秒)
  4. 【致敬未来的攻城狮计划】— 连续打卡第十天:FSP固件库开发及FSP配置详解。
  5. 我是一个Java class
  6. intel服务器单核性能提升,Intel 12代酷睿最大担心解除:Win11优化大小核架构、单核性能大涨...
  7. 立体视觉入门指南(5):双相机标定【再不收藏我收费了~】
  8. 判断浏览器类型(附区分qq浏览器和chrome浏览器正则)
  9. 程序员,我在北上广寻找生活的感觉
  10. php各种主流框架的比较