2016-08-06 152 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