Unity中的协程进行等待yield return new WaitForSeconds(1.2f);为什么要有new 您所在的位置:网站首页 yield语句用来做什么 Unity中的协程进行等待yield return new WaitForSeconds(1.2f);为什么要有new

Unity中的协程进行等待yield return new WaitForSeconds(1.2f);为什么要有new

2024-07-16 10:16| 来源: 网络整理| 查看: 265

在 yield return new WaitForSeconds(1.2f); 这个语句中,new 关键字用于实例化 Unity 内置的 WaitForSeconds 类的一个新实例。

WaitForSeconds 是一个结构体(struct),它封装了一个等待特定秒数的行为。当你写 new WaitForSeconds(1.2f) 时,实际上是创建了一个表示等待1.2秒的对象实例。这个对象在协程中扮演了“暂停令牌”的角色,告诉Unity引擎在协程恢复执行之前需要等待多长时间。

总结来说,“new”关键字在这里用来创建一个具体的等待时间对象,而不仅仅是声明一个等待时间的数值。通过实例化 WaitForSeconds 类来利用Unity的协程系统进行精确的帧同步延时处理。 yield return new WaitForSeconds(1.2f); 这句话是在Unity C#脚本中使用的协程(Coroutine)语法。协程是一种特殊的执行流程控制机制,它可以暂停函数的执行并在指定的时间点恢复。

具体到这句话的含义和原理:

yield: 在C#中,配合 IEnumerator 接口,yield 关键字用于创建一个迭代器,允许你在函数中定义一种生成一系列值的方式,每次调用 MoveNext() 方法时返回下一个值。在Unity中,当在一个协程函数中使用 yield 时,它会暂停当前协程的执行,并在下一次更新循环时从暂停的地方继续执行。

return new WaitForSeconds(1.2f);: 这里 WaitForSeconds(1.2f) 是Unity内建的一种 yield 值类型,它代表等待1.2秒。当协程遇到 yield return new WaitForSeconds(1.2f); 这一行时,它会立即返回,并暂停协程的执行。然后在1.2秒后,协程会自动恢复执行,从 yield 语句之后的下一条指令开始。

所以整个语句的作用就是:在协程执行过程中暂停1.2秒,然后继续执行后面的代码。这种方式常用于游戏中实现延迟执行、定时任务等功能。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有