Unity⭐️当Unity协程遇到while
文章目录
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相关推荐
- Unity C#笔记 协程详解(转)
目录 什么是协程 多线程 协程 协程的使用场景 协程使用示例 Invoke的缺陷 协程语法 开启协程 终止协程 挂起 协程的执行原理 什么是协程 在Unity中,协程(Coroutines)的形式是我 ...
- Unity线程与协程
文章目录 前言 一.unity真的不支持多线程吗? 1.unity中使用多线程 2.unity中多线程的停止 3.unity中使用多线程的问题 二.协同程序 1.协程的使用 2.协程的原理 总结 前言 ...
- unity如何解决协程开启频繁导致的程序卡顿
unity如何解决协程开启频繁导致的程序卡顿 一.协程 协程并不会在Unity中开辟新的线程来执行,其执行仍然发生在主线程中.当我们有较为耗时的操作时,可以将该操作分散到几帧或者几秒内完成,而不用在一 ...
- Unity 新手入门 如何理解协程 IEnumerator yield
Unity 新手入门 如何理解协程 IEnumerator 本文包含两个部分,前半部分是通俗解释一下Unity中的协程,后半部分讲讲C#的IEnumerator迭代器 协程是什么,能干什么? 为了能通 ...
- Unity 协程原理探究与实现
目录 一.介绍 二.迭代器 三.原理 四.总结 一.介绍 协程Coroutine在Unity中一直扮演者重要的角色.可以实现简单的计时器.将耗时的操作拆分成几个步骤分散在每一帧去运行等等,用起来很是方 ...
- Unity 协程深入解析与原理
先来直接放一段代码 1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 5 p ...
- Unity协程实现分析以及Lua协程与Unity协程的混合使用
1,节选翻译一篇stackoverflow关于Unity协程实现的讨论 - The big clues are in the C# version. Firstly, note that the re ...
- Unity协程(Coroutine)原理深入剖析
Unity协程(Coroutine)原理深入剖析 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 记得去年6月份刚开始实习的时候,当时要我写网 ...
- unity协程_[C#进阶]C#实现类似Unity的协程
使用过Unity的同学一定知道,Unity提供了一套协程机制,简直不要太好用.但是这个协程依赖于Unity引擎,离开Unity就无法使用.那有没有办法实现不依赖Unity的协程呢?答案是当然阔以. 所 ...
- Unity的协程详解
一.协程的定义 协程,即为协同程序. Unity中的协程由协程函数和协程调度器两部分构成.协程函数使用的是C#的迭代器, 协程调度器则利用了MonoBehaviour中的生命周期函数来实现. 协程函数 ...
最新文章
- 【算法】输入一个链表,反转链表后,输出新链表的表头。
- OSX EI Captain中安装Pear等三方软件不成功的解决方法
- 北大OJ(POJ 3237)鸡兔同笼
- ubuntu 11 mysql_Ubuntu 11.10是否包含MySQL 5.5?
- 【Oracle】重置参数
- 【原创翻译】深入理解javascript事件处理函数绑定三部曲(一)——早期的事件处理函数...
- centos 安装gcc
- SQlite数据库的C编程接口(四) 绑定参数(Bound Parameters) ——《Using SQlite》读书笔记
- 数据库事务的四大特性,四种隔离级别,如何避免脏读、不可重复读、幻读(如何加锁)?
- 网站改造为百度智能小程序教程,适合所有网站封装
- 简单一招能让你的浏览器下载速度提升几十倍,从此弃用IDM等下载器
- 大数据论文_02_MapReduce(个人总结)
- jdk文档下载(html格式)
- UEBA架构设计之路3:复杂事件处理引擎
- Django永久重定向问题
- OCT病灶分割论文泛读
- Python账号密码登录
- 《Microduino实战》——2.3 Microduino STM32核心系列
- 如何在生产环境使用devtools?
- linux蓝牙服务关闭,使用linux的hciconfig命令配置蓝牙设备
热门文章
- python将图片转换成素描和漫画格式
- mdbook-pdf: 用于生成 PDF 文件的 mdBook 后端
- JS获取当前时间(年月日时分秒)
- 【致敬未来的攻城狮计划】— 连续打卡第十天:FSP固件库开发及FSP配置详解。
- 我是一个Java class
- intel服务器单核性能提升,Intel 12代酷睿最大担心解除:Win11优化大小核架构、单核性能大涨...
- 立体视觉入门指南(5):双相机标定【再不收藏我收费了~】
- 判断浏览器类型(附区分qq浏览器和chrome浏览器正则)
- 程序员,我在北上广寻找生活的感觉
- php各种主流框架的比较