2016-08-06 111 views
0

我想让我的代码在做某事之前等待x秒。我查了一下如何做到这一点,并发现了WaitForSeconds()函数。不幸的是,每当我尝试使用它时,我的代码中都会出现红色下划线。我想使它所以当你死它等待你之前几秒钟重生:有人可以请解释WaitForSeconds()吗?

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

我也明白我需要把像StartCoroutine(Example());的地方,但我也不知道放在哪里。我如何正确地做到这一点?

回答

1

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

+0

它似乎增加了阻止它做任何事情? – Klink45

+1

添加**什么**阻止它做任何事情? – Programmer

+0

将我的函数更改为协程函数会使该函数不执行任何操作。 – Klink45