我有一个StartupScript,我想在每次场景(重新)加载时运行。
当我加载场景 1 时,脚本运行。
当我加载场景 2 时,脚本运行。
当我回到场景 1 时,脚本没有运行。
每次加载场景时如何强制启动脚本运行?
该脚本存在于每个场景中,在预制StartScriptHolder上。
我正在查看 SceneManager:也许通过创建和删除场景的命名实例,我可以强制每次生成StartupScript ?
仅仅为了运行单个脚本而创建和丢弃完整的场景似乎非常低效。
我有一个StartupScript,我想在每次场景(重新)加载时运行。
当我加载场景 1 时,脚本运行。
当我加载场景 2 时,脚本运行。
当我回到场景 1 时,脚本没有运行。
每次加载场景时如何强制启动脚本运行?
该脚本存在于每个场景中,在预制StartScriptHolder上。
我正在查看 SceneManager:也许通过创建和删除场景的命名实例,我可以强制每次生成StartupScript ?
仅仅为了运行单个脚本而创建和丢弃完整的场景似乎非常低效。
我不知道您如何处理场景之间的交换。您是否尝试过使用 SceneManager 中的 UnloadSceneAsync?(https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.UnloadSceneAsync.html)
我正在一个项目中工作,我必须这样做。我卸载了一个场景,如果我再次加载它,我需要再次运行 Start 函数。
SceneManager.LoadScene("SceneName", LoadSceneMode.Additive); //Loading the new scene
SceneManager.UnloadSceneAsync(val); // Unloading current scene
在这种情况下,我正在做的是按其名称和附加模式加载新场景(这是我的要求,但您可以使用其他模式加载它。之后我使用我建议您使用的函数作为参数场景的 ID。您可以在构建设置窗口中找到此 ID。构建设置 窗口