Unity零基础到入门 ☀️| Yield Return学习

举报
呆呆敲代码的小Y 发表于 2021/10/29 18:58:49 2021/10/29
【摘要】 🚩Yield Return既然说完了怎样启动和停止协程,那接下来就说一下Yield Return用到了协程,就一定会用的Yield Reruen再来看一下Unity中的生命周期图,可以发现Yield穿插在其中!下面我们来对各个不同的 Yield 来做一个说明yield return null; :暂停协程等待下一帧继续执行yield return 0或其他数字; :暂停协程等待下一帧继...

🚩Yield Return

既然说完了怎样启动停止协程,那接下来就说一下Yield Return

用到了协程,就一定会用的Yield Reruen

再来看一下Unity中的生命周期图,可以发现Yield穿插在其中!
在这里插入图片描述

下面我们来对各个不同的 Yield 来做一个说明
在这里插入图片描述

  • yield return null; :暂停协程等待下一帧继续执行

  • yield return 0或其他数字; :暂停协程等待下一帧继续执行

  • yield return new WairForSeconds(时间);:等待规定时间后继续执行

  • yield return new WaitForFixedUpdate():等到下一个固定帧数更新

  • yield return new WaitForEndOfFrame();:等到所有相机画面被渲染完毕后更新

  • yield return StartCoroutine("协程方法名");:开启一个协程(嵌套协程)

了解了一些常用的yield之后,我们写一个简单的测试用例来看一下

    void Start()
    {
        Debug.Log("a");
    }

    void Update()
    {
        Debug.Log("b");
        StartCoroutine(Test1());
        Debug.Log("d");
    }

    IEnumerator Test1()
    {
        Debug.Log("c");
        yield return null;
        Debug.Log("e");
    }

上述代码第一帧肯定打印:a,b,c,d

那小伙伴们你们觉得第二帧会打印什么呢?

第二帧:b,c,d,e。有没有答对呢!
在这里插入图片描述
代码很好理解,遇到yield return之后会暂停一帧,跳出协程,等到下一帧的时候再根据yield的生命周期位置来进行打印!

差不多就这些内容,下面结合几个实例再来深入了解一下协程!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。