using UnityEditor; using UnityEngine; namespace AssetStoreTools.Utility { internal static class ASDebug { private enum LogType { Info, Warning, Error } private static string FormatInfo(object message) => $"[AST Info] {message}"; private static string FormatWarning(object message) => $"[AST Warning] {message}"; private static string FormatError(object message) => $"[AST Error] {message}"; private static bool s_debugModeEnabled = EditorPrefs.GetBool(Constants.Debug.DebugModeKey); public static bool DebugModeEnabled { get => s_debugModeEnabled; set { s_debugModeEnabled = value; EditorPrefs.SetBool(Constants.Debug.DebugModeKey, value); } } public static void Log(object message) { LogMessage(message, LogType.Info); } public static void LogWarning(object message) { LogMessage(message, LogType.Warning); } public static void LogError(object message) { LogMessage(message, LogType.Error); } private static void LogMessage(object message, LogType type) { if (!DebugModeEnabled) return; switch (type) { case LogType.Info: Debug.Log(FormatInfo(message)); break; case LogType.Warning: Debug.LogWarning(FormatWarning(message)); break; case LogType.Error: Debug.LogError(FormatError(message)); break; default: Debug.Log(message); break; } } } }