Unity:运行 协程是否在加载新场景时被销毁?
Unity: Are running Coroutines destroyed upon loading new scene?
如果脚本中有一个协程 运行 附加到给定场景中的对象,当该场景结束时,协程会得到 terminated/destroyed 吗? ...即使协程包含例如无休止的 While 循环?
例如,如果我将以下协程附加到场景中的某个对象:
IEnumerator SampleCoroutine()
{
while (true) {
yield return new WaitForSeconds(1.0f);
}
yield return null;
}
...当加载新场景时,假设没有附加到对象的脚本包含“DontDestroyOnLoad(...)
”,协程是否仍然在新加载的场景中执行?
提问原因:我需要知道我是否需要保留所有活动协程的列表,以便我可以在每次场景更改后结束它们。我不希望性能随着更多场景的使用而降低。
简答:
是的,它们将在 Coroutine
s 运行 时终止,具体取决于 MonoBehaviour
它们的启动时间。没有MonoBehaviour
==没有Coroutine
.
如果脚本中有一个协程 运行 附加到给定场景中的对象,当该场景结束时,协程会得到 terminated/destroyed 吗? ...即使协程包含例如无休止的 While 循环?
例如,如果我将以下协程附加到场景中的某个对象:
IEnumerator SampleCoroutine()
{
while (true) {
yield return new WaitForSeconds(1.0f);
}
yield return null;
}
...当加载新场景时,假设没有附加到对象的脚本包含“DontDestroyOnLoad(...)
”,协程是否仍然在新加载的场景中执行?
提问原因:我需要知道我是否需要保留所有活动协程的列表,以便我可以在每次场景更改后结束它们。我不希望性能随着更多场景的使用而降低。
简答:
是的,它们将在 Coroutine
s 运行 时终止,具体取决于 MonoBehaviour
它们的启动时间。没有MonoBehaviour
==没有Coroutine
.