如果协同程序在loadcene之后运行结束

时间:2016-07-23 01:49:59

标签: unity3d

在加载场景之前,我有很多任务要运行,例如将一些日期保存到sql等等,我在coroutine运行任务。如你所知,当调用SceneManager.LoadScene时,onstory是调用,所以我的问题是:

  1. 如果加载其他场景直到coroutine运行完成,或者coroutine突破我的任务还没完成。
  2. startcoroutine应该在SceneManager.LoadScene之前,或者放在ondestroy上 3.如果我使用SceneManager.LoadSceneAsync而不是SceneManager.LoadScene,如果coroutine会中断

1 个答案:

答案 0 :(得分:1)

您应该在运行协程任务的MonoBehavi的Awake方法中调用Object.DontDestroyOnLoad,如Unity文档中所述:

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Awake() {
        DontDestroyOnLoad(transform.gameObject);
    }
}

即使加载了另一个级别,此代码也会允许你的协程结束。