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);
        }