unity中invoke*和waitforseconds在停止携程后的表现不同

本文探讨Unity中StopCoroutine对Invoke和WaitForSeconds的影响。实验表明,即使在StopCoroutine后,Invoke仍会继续执行,而WaitForSeconds因涉及等待,在yield后若携程已停止,则不会继续执行。此外,当Time.timeScale设为0时,所有涉及时间等待的操作都将暂停,但更新逻辑不受影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验一。下面代码中虽然停止ot,接下来的invoke有等待时间,但是start和f中的内容都执行了。

如果用waitforseconds,即使是0秒,后面的也不执行了!!!!主要是waitforseconds前有yield,

也就是等下一帧才开始执行waitforseconds,但是下一帧之前该携程已经停止了(对于该实验)。

也就是stopcoroutine只和相应的携程有关,和等待时间是无关的。

实验二。如果是把Time.timescale=0,涉及等待时间(大于零秒)的都会暂停!!!但是update之类不暂停!!!


using UnityEngine;

using System.Collections;

public class invokeyield : MonoBehaviour {

    // 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值