Unity基础 协程

  在Unity中,协程(Coroutine)是一种特殊的函数,允许您在不中断主线程的情况下,以非阻塞的方式执行代码。可以用于执行异步操作、延时执行、动画效果和复杂的任务分解。

      协程可以在一段时间后恢复执行,或者等待特定条件满足后再继续执行。这使得您可以在一帧或多帧之间分散执行耗时操作,从而避免造成游戏卡顿或阻塞。协程只能在继承自MonoBehaviour 的类中使用,并且只能在主线程中执行。

      下面是一个简单的示例代码,演示了如何在Unity中声明一个协程:

//创建一个函数,并使用返回类型为 IEnumerator 的关键字
IEnumerator MyCoroutine()
{
    // 协程的逻辑代码
    yield return null; // 等待一帧
    // 继续执行逻辑代码
    yield return new WaitForSeconds(2); // 等待2秒钟
    // 继续执行逻辑代码
} 

下面是一个简单的示例代码,演示了如何在Unity中打开和关闭协程:

// 启动一个协程,并接收返回值
Coroutine m_Coroutine = StartCoroutine(MyCoroutine());
// 停止一个协程
StopCoroutine(m_Coroutine);
// 停止所有正在运行的协程。
StopAllCoroutines(); 

在协程中,您可以使用不同的 yield 语句来控制流程的等待和恢复。一些常用的 yield 语句包括:

yield return null;:等待一帧后继续执行。

yield return new WaitForSeconds(time);:等待指定的时间(以秒为单位)后继续执行,time是为float类型。

yield return new WaitForFixedUpdate();:等待下一次固定帧更新后继续执行。

yield return StartCoroutine(otherCoroutine);:等待其他协程完成后继续执行,otherCoroutine是声明的协程函数。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HoFunGames

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值