我要做的是将一些脚本附加到统一的启动场景,然后在游戏开始后触发加载剩余的所需场景。这将需要一些摆弄才能正确启动(例如,在尝试加载场景之前检测场景尚未加载的事实)。
我可以使用代码片段扩展答案,以便在需要时获得结果。
现在你可以看一下这里的文档: https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.GetSceneByName.html https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadSceneAsync.html
基本想法是:
如果要在构建时保留当前层次结构(在编辑器中打开的一组场景),则可以使用BuildPipeline实现: https://docs.unity3d.com/Manual/BuildPlayerPipeline.html
有一种方法可以使用可编程访问的场景列表进行构建:
// Get filename. string path = EditorUtility.SaveFolderPanel("Choose Location of Built Game", "", ""); string[] levels = new string[] {"Assets/Scene1.unity", "Assets/Scene2.unity"}; // You'd have to assemble this list yourself. // Build player. BuildPipeline.BuildPlayer(levels, path + "/BuiltGame.exe", BuildTarget.StandaloneWindows, BuildOptions.None);
(您可以在运行构建时根据当前加载的场景确定)。这不是标准(Cmd + b)构建,但非常接近。