【问题标题】:if coroutine is run end after loadscene如果协程在加载场景之后运行结束
【发布时间】:2016-07-23 01:49:59
【问题描述】:

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

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

【问题讨论】:

  • 无法理解您的问题。改写问题中的所有内容然后用问号结束实际问题对您来说是有意义的。

标签: unity3d


【解决方案1】:

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

using UnityEngine;
using System.Collections;

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

即使加载了另一个关卡,此代码也将允许您的协程结束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 2016-09-20
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    相关资源
    最近更新 更多