有人可以解释WaitForSeconds()吗?

时间:2016-08-06 18:23:11

标签: c# unity3d wait

我正在尝试让我的代码在做某事之前等待x秒。我查找了如何执行此操作,并了解了WaitForSeconds()函数。不幸的是,每当我尝试使用它时,我的代码中都会出现红色下划线。我试图在你死的时候这样做,等到你重生之后几秒钟:

 void Respawn()
{
    yield return new WaitForSeconds(5);
    gameObject.transform.position = spawnPoint;
}

我也理解我需要在某处放置StartCoroutine(Example());之类的内容,但我也不知道该把它放在哪里。我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

必须在协程函数中使用

yield return new WaitForSeconds(5);。现在,您正在void函数void Respawn()中使用它。将void更改为IEnumerator可以解决您的问题。

IEnumerator Respawn()
{
    yield return new WaitForSeconds(5);
    gameObject.transform.position = spawnPoint;
}

然后你可以用StartCoroutine(Respawn());来调用它。每次调用它时,它将等待5秒,然后执行gameObject.transform.position = spawnPoint;。如果您想了解它的工作原理,请访问here