Unity⭐️当Unity协程遇到while

article/2025/11/1 5:33:39

在这里插入图片描述

文章目录


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是等待。





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


在这里插入图片描述
如果你有 技术的问题 项目开发

都可以加下方联系方式

和我聊一聊你的故事🧡


http://chatgpt.dhexx.cn/article/QqLrCA63.shtml

相关文章

深入探讨Unity协程及其使用

深入探讨Unity协程及其使用 协程 协程在Unity中是个很重要的东东,相信很多人都使用过,它能够非常方便的进行异步等待操作,可以说,用好协程,可以使你的代码更加优雅,然而,如果用不好&#xff0…

Unity 协程、模拟协程

理解协程 IEnumeratoryield 强大的迭代器 IEnumerator 就是一个函数容器 里面保存了一个一个的函数 IEnumator会依次执行每个函数 而每个函数都有一个返回值 保存在IEnumator.Currect里面 看下面这个例子 IEnuermator start_Coroutine(){Debug.Log("HellWord")…

unity 协程特点

协程 一. Unity中使用协程1. 什么是协程2. 如何使用3. 协程的应用场景创建补间动画打字机效果异步加载资源 4. 注意事项 二. Unity协程的底层原理1. 协程本体:C#的迭代器函数2. 协程调度:MonoBehaviour生命周期中实现3. Unity协程的架构 三. 扩展Unity的…

Unity协程深入及实现

Unity协程深入 文章目录 Unity协程深入Unity协程简介Unity协程的用法协程的原理协程的缺陷自己实现协程参考 Unity协程简介 Unity中的协程能够允许我们将一个任务分散到多个帧中。注意:协程(协同执行)和多线程有本质区别。 协程不是线程&…

unity 协程

首先声明:协程不是线程,协程在主线程中运行,而线程是单独开辟线程 以下是u3d关于协程的调用机制的解释: “在Unity3D中,使用MonoBehaviour.StartCoroutine方法即可开启一个协同程序,也就是说该方法必须在…

【Unity】Unity协程(Coroutine)的原理与应用

文章目录 前言一、什么是协程二、应用场景1.异步加载资源2.将一个复杂程序分帧执行3.定时器 三、协程的使用注意事项 四、Unity协程的底层原理1. 协程本体:C#的迭代器函数2. 协程调度:MonoBehaviour生命周期中实现 五、参考资料 前言 本文是作者在学习U…

Unity-协程详解

1. 简介 unity的**协程(Coroutine)**只是在c#的基础上做了一层封装,其实yield是C#的关键字。 unity协程是一个能够暂停协程执行,暂停后立即返回主函数,执行主函数剩余的部分,直到中断指令完成后&#xff…

Unity 协程(Coroutine)原理与用法详解

前言: 协程在Unity中是一个很重要的概念,我们知道,在使用Unity进行游戏开发时,一般(注意是一般)不考虑多线程,那么如何处理一些在主任务之外的需求呢,Unity给我们提供了协程这种方式…

linux的用户管理

1.linux的用户管理 linux的用户管理和组管理, 每个用户都必须要有一个且仅有一个初始组,可以有多个附加组,使用useradd命令创建用户时,如果没有指定初始组,系统默认会创建一个于其同名的组。 用户和组信息保存在4个文…

Linux用户管理练习

Linux下用户分为3类:超级用户(root)、系统用户、普通用户。 超级用户的用户名为root,它具有一切操作权力,因此为安全起见,建议不要轻易的在root账户下面对文件进行操作。在Linux操作系统的字符界面&#xf…

Linux用户管理工具

Linux用户管理工具 1. 用户 1.1创建用户 useradd -m username该命令为用户创建相应的帐号和用户目录/home/username; passwd username该命令为用户设置密码 1.2 删除用户 userdel -r username不带选项使用 userdel,只会删除用户。用户的家目录将…

Linux上的用户管理

Linux是一个多用户多任务的系统,任何人想要访问系统资源,必须通过登录账号来访问系统资源 添加用户 useradd:添加用户的命令(root才能添加用户) 用法:useradd 用户名 例:useradd water 就创建…

实现Linux用户管理

1.添加用户组:groupadd 用户组名称 2.创建用户 (一)仅创建用户:useradd 用户名 (二)指定用户所属的用户组: useradd -g 用户组 3.设置用户密码 (一)passwd 普通用户名 …

linux用户管理及操作指令

1、首先了解下linux是一个多用户多任务的操作系统。任何一个需要使用资源的用户都需要从linux系统中分配一个用户角色,比如:root、user、、然后使用对应账号进入系统。一个root用户下面能创建多个用户,每个用户下面对应一个目录 2、添加用户…

浅谈Linux用户管理

Linux用户管理 准备工作: 在管理用户时,执行命令后是无法看到效果的,最开始我们可以通过系统监视命令来对用户信息进行监控,使操作步骤可视。 watch -n 1 tail -n3 /etc/passwd;ls -l /home/ 注释: 部分含义watch …

Linux用户管理(Centos7)

用户管理 用户命令 添加登录用户: 例:添加一个名为harry的用户,并使用bash作为登录的shell [rootaws ~]# useradd harry [rootaws ~]# tail -1 /etc/passwd harry:x:1002:1002::/home/harry:/bin/bashharry:x:1001:1001::/home/harry:/bin/…

Linux用户管理机制

Linux系统中的用户管理涉及用户账号文件 /etc/passwd、用户密码文件 /etc/shadow、用户组文件 /etc/group。 一、用户账号文件 /etc/passwd 该文件为纯文本文件,可以使用cat、head等命令查看。该文件记录了每个用户的必要信息,文件中的每一行对应一个用…

【Linux用户管理】

目录 前言 用户管理的基本命令 前言 Linux是一个多用户、多任务的操作系统,具有很好的稳定性与安全性,在linux系统中,root用户具有最高的权限,但该身份不当使用会带来一些不必要的麻烦和潜在的风险,故需要添加一些普通…

Linux之用户管理

一、用户的增删改查 1.增加用户 语法:useradd用户名 在终端输入 useradd 用户名 在linux系统home文件夹下面会出现新建用户的文件夹 2.修改密码 语法:passwd用户名 输入passwd 用户名,输入新的密码之后就可以使用新建的用户登录 3.删除用…