You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中如何在while循环中添加延迟?(C#实现)

在C#的While循环中添加延迟的简单方法

根据你的需求,这里有两种常用的简单方法给while循环加延迟,适配不同场景:

1. 同步延迟(阻塞线程)

如果是简单的控制台程序,不需要保持线程响应,可以用Thread.Sleep(),它会让当前线程暂停指定的毫秒数。

首先需要引入命名空间:

using System.Threading;

修改后的代码:

int value = 0; // 假设你已初始化value
while (value < 101)
{
    Debug.Log(value);
    value += 10;
    Thread.Sleep(1000); // 延迟1秒,单位为毫秒
}

注意:这种方式会阻塞当前线程,若用于UI程序或Unity场景,会导致界面卡死,不推荐在这类场景使用。

2. 异步延迟(非阻塞)

如果需要保持线程响应(比如Unity、WPF/WinForms等),推荐用await Task.Delay(),这种方式不会阻塞线程,其他操作可正常执行。

需要引入命名空间:

using System.Threading.Tasks;

修改后的代码(注意方法要标记为async):

async Task YourMethodName()
{
    int value = 0;
    while (value < 101)
    {
        Debug.Log(value);
        value += 10;
        await Task.Delay(1000); // 延迟1秒
    }
}

针对Unity场景补充

如果你的代码在Unity中运行,除了上述异步方式,还可以用Unity专属的协程(Coroutine),这也是Unity里常用的延迟实现方式:

IEnumerator DelayedLoop()
{
    int value = 0;
    while (value < 101)
    {
        Debug.Log(value);
        value += 10;
        yield return new WaitForSeconds(1f); // 延迟1秒
    }
}

// 调用协程
StartCoroutine(DelayedLoop());

内容的提问来源于stack exchange,提问作者Electrico28

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:22:05