Newer
Older
TheVengeance-Project-IADE-Unity2D / Assets / Scripts / Managers / SceneGroup.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using Eflatun.SceneReference;
using System.Linq;
using UnityEngine.SceneManagement;

namespace MyCollections.SceneManagement
{
    [Serializable]
    public class SceneGroup
    {
        public string groupName = "New Scene Group";
        public List<SceneData> scenes;

        public string FindSceneNameByType(SceneType sceneType) =>
            scenes.FirstOrDefault(scene => scene.sceneType == sceneType)?.reference.Name;

        public List<Scene> FindSceneRefByType(SceneType type) =>
            scenes.Where(scene => scene.sceneType == type)
            .Select(scene => scene.reference.LoadedScene)
            .ToList();
    }

    [Serializable]
    public class SceneData
    {
        public SceneReference reference;
        public SceneType sceneType;
        public string Name => reference.Name;
    }

    public enum SceneType
    {
        ActiveScene,
        DisableScene,
        MainMenu,
        UserInterface,
        HUD,
        Cinematic,
        Environment,
        Tooling
    }
}