前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity⭐️当Unity协程遇到while

Unity⭐️当Unity协程遇到while

作者头像
星河造梦坊官方
发布2024-08-16 08:30:31
760
发布2024-08-16 08:30:31
举报
文章被收录于专栏:星河造梦坊专栏

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

那就是这句话:

为什么说这句话不对呢

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

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

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

代码语言:javascript
复制
private void Start()
{
    StartCoroutine(CalculateFramesPerSecond());
    print(111);
}
 
private IEnumerator CalculateFramesPerSecond()
{
    while (true)
    {
        yield return new WaitForSecondsRealtime(1.0f);
        print(222);
    }
}

但实际是这样嘛?

实际只输出了:

代码语言:javascript
复制
111
222
222
222
...

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

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

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档