Unity3d Unity SceneManager加载场景,启动/唤醒不加载运行

Unity3d Unity SceneManager加载场景,启动/唤醒不加载运行,unity3d,scene-manager,Unity3d,Scene Manager,我有一个StartupScript,每次加载场景时都要运行它 加载场景1时,脚本将运行。 加载场景2时,脚本将运行。 当我返回到场景1时,脚本不会运行 如何在每次加载场景时强制运行StartupScript 脚本出现在每个场景中,在预制的StartScriptHolder上 我在看SceneManager:也许通过制作和删除场景的命名实例,我可以强制每次生成StartupScript 仅仅为了运行单个脚本而创建和丢弃完整的场景似乎效率很低。我不知道您如何处理场景之间的交换。您是否尝试过从Scen

我有一个StartupScript,每次加载场景时都要运行它

加载场景1时,脚本将运行。
加载场景2时,脚本将运行。
当我返回到场景1时,脚本不会运行

如何在每次加载场景时强制运行StartupScript

脚本出现在每个场景中,在预制的StartScriptHolder

我在看SceneManager:也许通过制作和删除场景的命名实例,我可以强制每次生成StartupScript
仅仅为了运行单个脚本而创建和丢弃完整的场景似乎效率很低。

我不知道您如何处理场景之间的交换。您是否尝试过从SceneManager使用UnloadSceneAsync?()

我在一个项目中工作,我也必须这样做。我卸载一个场景,如果我再次加载它,我需要再次运行Start函数

    SceneManager.LoadScene("SceneName", LoadSceneMode.Additive); //Loading the new scene
    SceneManager.UnloadSceneAsync(val); // Unloading current scene
在本例中,我所做的是按名称加载新场景,并以加法模式加载(这是我的要求,但您可以使用其他模式加载它)。 之后,我使用了我建议您使用的函数,该函数需要场景的ID作为参数。您可以在build settings(构建设置)窗口中找到该ID。

请分享您的代码…听起来您的
StartupScript
使用或添加场景加载->
Awake
Start
等将不会再次被调用。不过,您只需附加一个回调,感谢您的建议。我进行了大量调试,发现我错误地声明了一些静态变量。撤消t他的解决了这个问题。谢谢你的建议。我试过了,它没有解决我的问题,但确实帮助我找到了错误的地方(我错误地声明了一些静态变量。解决了这个问题)。