gpt4 book ai didi

c# - 为什么 yield return new waitforseconds 不起作用?

转载 作者:行者123 更新时间:2023-11-30 21:53:22 27 4
gpt4 key购买 nike

以下是我的代码:

void Start ()
{
Debug.Log("before");
StartCoroutine(CharTooLong());
Debug.Log("after");
}
IEnumerator CharTooLong(){
Debug.Log ("up");
yield return new WaitForSeconds(2);
Debug.Log ("down");
}

我只是用这两种方法运行,但控制台只打印如下:

before
up
after

为什么不打印“down”?我在我的 unity 中导入了 DoTween,这是效果吗?

如何解决这个问题?

最佳答案

如果游戏暂停 (timescale = 0),

WaitForSeconds 将不起作用。重新启动游戏不会重置时间刻度。您可以在 Edit -> Project settings -> Time 检查 Time Scale 参数中检查当前时间尺度。

要么确保你有合适的时间尺度,要么使用 WaitForSeconds 的替代方法:

void Start ()
{
Debug.Log("before");
StartCoroutine(CharTooLong());
Debug.Log("after");
}
IEnumerator CharTooLong(){
Debug.Log ("up");
yield return new WaitForUnscaledSeconds(2);
Debug.Log ("down");
}

public static IEnumerator WaitForUnscaledSeconds(float time){
float ttl = 0;
while(time > ttl){
ttl += Time.unscaledDeltaTime;
yield return null;
}
}

关于c# - 为什么 yield return new waitforseconds 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33911366/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com