2016-06-29 40 views
0

我希望產生在每x毫秒重複一個特定位置以相同速度移動的敵人。統一:隨着時間的推移在精確的位置產卵元素

Unity中update()函數的問題在於它出現在非確定性時間,所以我無法在精確位置產卵,並且我得到延遲和元素位置不準確。 我該如何解決這個問題?

+2

您可以使用例如協程[link](https://docs.unity3d.com/Manual/Coroutines.html)。用'WaitForSeconds()'類來實現時間延遲。 –

+0

或者使用'InvokeRepeating'。 –

+1

如果確實必須在此框架上進行精確定位,則可以使用FixedUpdate()代替 –

回答

0

協程對定期觸發方法非常有用。

您可以檢查this Unity forum post以瞭解它是如何工作的。

IEnumerator SpawnDelay() 
{ 
    Spawn(); //your spawn method 
    yield return new WaitForSeconds(5); 
    StartCoroutine("SpawnDelay"); //Restarting the coroutine after the 5 sec delay 
} 
+0

如果我需要,例如每0.5秒就會產生一次 - Coroutine能夠處理它嗎?或者再次,在這種情況下可能會有偏移? – Yuvals

+0

協程應該能夠每0.5秒產生一個項目,因爲它在上面使用的代碼的指定延遲之後重新啓動。但是關於這個位置,如果產卵位置沒有改變,它們應該全部產生在相同的位置。但是,是否與這些衝突處理?如果先前衍生的項目仍然存在,那可能是偏移量的原因。如果不是,我不確定爲什麼位置不正確。 – YumeYume

相關問題