4
如果您在連接到給定場景中的對象的腳本中運行協程,那麼當該場景結束時,協程會被終止/銷燬?即使協程包含例如一個無盡的循環?統一:加載新場景時正在運行協程?
舉例來說,如果我有附加到一個對象在我的場景以下協程:
IEnumerator SampleCoroutine()
{
while (true) {
yield return new WaitForSeconds(1.0f);
}
yield return null;
}
...當一個新的場景被載入,假設沒有附加到對象的腳本包含「 DontDestroyOnLoad(...)
「,協程會在新加載的場景中執行嗎?
問題的理由:我需要知道是否需要保留所有活動協同程序的列表,以便在每次場景更改後都可以結束它們。隨着使用更多的場景,我不希望性能降低。
只是爲了澄清,當它們被調用的對象被銷燬時它們將被終止? –
@BenHayward調用'StartCoroutine'確定何時停止的MonoBehaviour。例如。如果MonoBehaviour'A'使用MonoBehaviour'B'的'IEnumerator'方法調用'StartCoroutine',那麼只有當MonoBehviour **'A' **被破壞時,協程纔會停止被調用。 –
@ BenHayward完全像gjttt1說的。我編輯了答案,導致我的「不」開始,但應該與「是」開始。 –