private List <SceneInfo> GetScenesInHierarchy() { int count = SceneManager.sceneCount; //必须使用SeceneManager 获取该数值,否则未保存的的Scene将不被计数 Scene[] scenes = new Scene[count]; for (int i = 0; i < count; i++) { scenes[i] = EditorSceneManager.GetSceneAt(i); } List <SceneInfo> result = scenes.Select(v => { var sceneInfo = new SceneInfo() { instanceID = this.sceneInstanceIDs[Array.IndexOf(scenes, v)], name = v.name, path = v.path, enabledInSettings = EditorBuildSettings.scenes .Where(scene => scene.enabled) .Select(scene => scene.path) .Contains(v.path), }; return(sceneInfo); }).ToList(); return(result); }