using UnityEngine; namespace ShrinkTutorial { [CreateAssetMenu(fileName = "ShrinkTutorialSettings", menuName = "ShrinkTutorial/Settings")] public class ShrinkTutorialSettings : ScriptableObject { private static ShrinkTutorialSettings _instance; public static ShrinkTutorialSettings Instance { get { if (_instance) return _instance; _instance = Resources.Load("ShrinkTutorialSettings"); #if UNITY_EDITOR if (!_instance) { var guids = UnityEditor.AssetDatabase.FindAssets("t:ShrinkTutorialSettings"); if (guids.Length > 0) { var path = UnityEditor.AssetDatabase.GUIDToAssetPath(guids[0]); _instance = UnityEditor.AssetDatabase.LoadAssetAtPath(path); } } #endif if (!_instance) { _instance = CreateInstance(); Debug.LogWarning( "[ShrinkTutorial] 未找到 ShrinkTutorialSettings,当前使用默认配置。\n" + "请通过 Assets -> Create -> ShrinkTutorial -> Settings 创建配置资源。"); } return _instance; } internal set => _instance = value; } [Header("数据")] public ShrinkTutorialDatabase database; [Header("运行时")] public bool autoCreateManager = true; public bool dontDestroyOnLoad = true; public int canvasSortingOrder = 9999; [Header("遮罩")] public Color maskColor = new(0f, 0f, 0f, 0.72f); [Header("存储")] public string playerPrefsStorageKey = "ShrinkTutorial.Progress"; [Header("交互")] public bool showSkipButton = true; } }