我有一个StartupScript,每次加载场景时都要运行它。
当我加载场景1时,脚本就会运行。
当我加载场景2时,脚本就会运行。
当我回到第一幕时,脚本就不运行了。
如何在每次加载场景时强制StartupScript运行?
脚本出现在每个场景中,在预置的StartScriptHolder.上。
我在看SceneManager:也许通过创建和删除命名的场景实例,我可以强制每次生成StartupScript?
仅仅为了运行一个脚本,创建和丢弃完整的场景似乎效率很低。
发布于 2021-05-18 07:36:45
我不知道你是怎么处理场景间的交换的。你试过使用来自SceneManager的UnloadSceneAsync吗?(https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.UnloadSceneAsync.html)
我正在做一个项目,我必须做同样的事情。我卸载一个场景,如果我再次加载它,我需要再次运行开始功能。
SceneManager.LoadScene("SceneName", LoadSceneMode.Additive); //Loading the new scene
SceneManager.UnloadSceneAsync(val); // Unloading current scene在这种情况下,我要做的是加载新场景的名称和添加模式(这是我的要求,但您可以使用另一种模式加载它。在此之后,我使用了我建议您使用的函数tu,它需要使用场景的ID作为参数。您可以在“生成设置”窗口中找到此ID。BuildSettings窗口
https://stackoverflow.com/questions/67581574
复制相似问题