using System.Collections.Generic; using Mountools.Tools; using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif namespace Mountools.LoadingScreen { public class LoadingScreenPresets : ScriptableObject { public List loadingScreens = new(); public static LoadingScreenPresets GetPresets() { LoadingScreenPresets presets = null; #if UNITY_EDITOR var path = @$"{MountoolsEditor.rootPath}/Extends/LoadingScreen/Presets/Presets.asset"; presets = AssetDatabase.LoadAssetAtPath(path); if (presets == null) { presets = CreateInstance(); Debug.Log("Presets Created"); AssetDatabase.CreateAsset(presets, path); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } #endif return presets; } public static void ChangePreset(GameObject gameObject) { #if UNITY_EDITOR var screen = LoadingScreen.GetLoadingScreen(); if (screen == null) { var obj = Instantiate(gameObject); obj.name = gameObject.name; Undo.RegisterCreatedObjectUndo(obj, "Replace Loading Screen"); } else { Undo.DestroyObjectImmediate(screen.gameObject); var obj = Instantiate(gameObject); obj.name = gameObject.name; Undo.RegisterCreatedObjectUndo(obj, "Replace Loading Screen"); } #endif } } }