如果在附加到给定场景中的对象的脚本中运行了一个协程,当该场景结束时,协同程序是否会被终止/销毁? ...即使协程包含例如一个无尽的while循环?
例如,如果我将以下协程附加到场景中的对象:
IEnumerator SampleCoroutine()
{
while (true) {
yield return new WaitForSeconds(1.0f);
}
yield return null;
}
...当加载一个新场景时,如果没有附加到该对象的脚本包含" DontDestroyOnLoad(...)
",那么协程是否仍会在新加载的场景中执行?
询问的原因:我需要知道是否需要保留所有活动协同程序的列表,以便我可以在每次更改场景后结束它们。随着使用更多场景,我不希望性能降低。
答案 0 :(得分:6)
简短回答:
是的,它们将在Coroutine
运行时终止,具体取决于它们已启动MonoBehaviour
。否MonoBehaviour
==否Coroutine
。