Unity:在加载新场景时运行Coroutines会被破坏吗?

时间:2016-05-23 12:47:44

标签: c# unity3d ienumerable scene coroutine

如果在附加到给定场景中的对象的脚本中运行了一个协程,当该场景结束时,协同程序是否会被终止/销毁? ...即使协程包含例如一个无尽的while循环?

例如,如果我将以下协程附加到场景中的对象:

IEnumerator SampleCoroutine()
{
    while (true) {
        yield return new WaitForSeconds(1.0f);
    }
    yield return null;
}

...当加载一个新场景时,如果没有附加到该对象的脚本包含" DontDestroyOnLoad(...)",那么协程是否仍会在新加载的场景中执行?

询问的原因:我需要知道是否需要保留所有活动协同程序的列表,以便我可以在每次更改场景后结束它们。随着使用更多场景,我不希望性能降低。

1 个答案:

答案 0 :(得分:6)

简短回答:

是的,它们将在Coroutine运行时终止,具体取决于它们已启动MonoBehaviour。否MonoBehaviour ==否Coroutine