-1

我在这里四处寻找一种让我的脚本等待几秒钟的方法,并找到了人们推荐的这篇文章。我拿了一些代码并在我的游戏中使用它来让它等待,但它并没有像我想要的那样运行。我将它放在两个 Debug.Log 行之间,但它会等待指定的时间,然后同时记录这两个内容,而不是在第一个触发后等待。

static void Waiter(){
    waitHandle.WaitOne ();
}
Debug.Log (choice);

new Thread (Waiter).Start ();   
Thread.Sleep (5000);
waitHandle.Set ();

Debug.Log (enemyChoice);
4

1 回答 1

3

要在 Unity 中等待,您可以使用协程和WaitForSeconds. 您也可以将协程与Time.deltaTimeor一起使用,Time.time但最简单的方法是使用WaitForSeconds. 请注意,如果您等待Thread.Sleep,您的整个程序将冻结。不要这样做,因为 UI 也不会响应。

void Start()
{
    StartCoroutine(doSomethingThenWait());
}

IEnumerator doSomethingThenWait()
{
    UnityEngine.Debug.Log("Before Waiting");
    //Wait for 2 Seconds
    yield return new WaitForSeconds(2);
    UnityEngine.Debug.Log("After Waiting");
}
于 2017-05-28T23:05:00.053 回答