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