我正在尝试在播放模式下在编辑器中加载场景,并获得以下行为的确切信息:
SceneManager.LoadScene(ScenePath, LoadSceneMode.Single);
除非不需要场景位于构建设置中。
我本来希望它能起作用:
EditorSceneManager.LoadSceneInPlayMode(ScenePath, new UnityEngine.SceneManagement.LoadSceneParameters(LoadSceneMode.Single));
但是,场景似乎异步加载,对于我的特定用例,我不希望这样做。
有没有办法完成我在这里寻找的?
我正在做的是为场景集创建一个加载器,该加载器将以加载方式对一堆具有不同限制条件的场景进行加载(例如:加载异步,在转换相同->相同时始终重新加载,以及其他功能)。当我不在播放模式下时,我可以在编辑器中正常工作,在内置播放器中也可以正常工作,但是最后一种情况是在编辑器和播放模式下使其正常工作。
我完全需要“单个”加载的原因是当您从一个场景集过渡到另一场景时,它们没有共享的场景。因为无法卸载每个场景,所以我只是一起跳过了卸载步骤,并使用LoadSceneMode.Single进行了第一个同步加载场景的加载,导致其他所有内容都被卸载了。
在不切实际的情况下,这很重要(我真的希望不是),我正在尝试从自定义编辑器的OnInspectorGUI调用中执行此操作。我是从那里按下按钮触发的。
EditorSceneManager.OpenScene
与 OpenSceneMode.Single
EditorSceneManager.LoadSceneInPlayMode
与 LoadSceneParameters(LoadSceneMode.Single)
SceneManager.LoadScene
与 LoadSceneMode.Single
EditorSceneManager.LoadScene
与 LoadSceneMode.Single
原来,我什至SceneManager.LoadScene(ScenePath, LoadSceneMode.Single);
会误解。
一位朋友指出,文档清楚地表明加载将在1帧之内发生,而不是实际上在呼叫现场。
如果您遇到类似的问题,则有几种选择。您可以加载异步并订阅该回调以激活它们。另一种选择是在此订阅SceneManager.sceneLoaded
并执行激活。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句