【问题标题】:Reloading scene causes Update Function to stop working重新加载场景导致更新功能停止工作
【发布时间】:2019-10-14 04:43:13
【问题描述】:

在用户单击重试后,我正在重新加载场景。重新加载场景后更新功能不起作用。

我在网上搜索,找到了DontDestroyOnLoad(),但我不知道如何将它与函数一起使用。

二手

 Scene scene = SceneManager.GetActiveScene(); 
 SceneManager.LoadScene(scene.name);

重新加载场景。

这是统一方面的错误还是我需要在重新加载场景之前做其他事情。

【问题讨论】:

  • 您没有在此处提供足够的信息来充分诊断问题。 DontDestroyOnLoad() 接受一个游戏对象参数。调用 LoadScene 时,该游戏对象(及其所有组件)不会被销毁,但如果新场景也包含该游戏对象,您将得到一个副本。

标签: c# unity3d


【解决方案1】:

当您使用DontDestroyOnLoad() 加载场景时,您可以使脚本所在的对象不被破坏。但是当你加载同一个场景时,那个场景中已经有同一个对象了,所以你必须销毁它。

private static GameObject goInstance;
void Awake(){

    if (goInstance == null) {
        DontDestroyOnLoad(gameObject);
        goInstance = gameObject;
    } else {
        //destroy duplicate
        Object.Destroy(gameObject);
    }
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-06
    • 2014-12-11
    • 1970-01-01
    • 2022-10-01
    • 1970-01-01
    • 2017-12-01
    • 2013-12-04
    • 1970-01-01
    相关资源
    最近更新 更多