Files
beyond/Assets/Scripts/Utils/Editor/DebugLoggerInitializer.cs
2024-11-20 15:21:28 +01:00

103 lines
2.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace Beyond
{
[InitializeOnLoad]
public class DebugLoggerInitializer
{
/*
static DebugLoggerInitializer()
{
var defines = GetDefinesList(buildTargetGroups[0]);
if (!defines.Contains("DISABLE_LOGS"))
{
SetEnabled("DISABLE_LOGS", true, true);
}
}
*/
[MenuItem("Logger/Disable")]
private static void Disable()
{
SetEnabled("DISABLE_LOGS", true, true);
}
[MenuItem("Logger/Disable", true)]
private static bool DisableValidate()
{
var defines = GetDefinesList(mobileBuildTargetGroups[0]);
return !defines.Contains("DISABLE_LOGS");
}
[MenuItem("Logger/Enable")]
private static void Enable()
{
SetEnabled("DISABLE_LOGS", false, true);
}
[MenuItem("Logger/Enable", true)]
private static bool EnableValidate()
{
var defines = GetDefinesList(mobileBuildTargetGroups[0]);
return defines.Contains("DISABLE_LOGS");
}
private static List<string> GetDefinesList(BuildTargetGroup group)
{
return new List<string>(PlayerSettings.GetScriptingDefineSymbolsForGroup(group).Split(';'));
}
private static BuildTargetGroup[] buildTargetGroups = new BuildTargetGroup[]
{
BuildTargetGroup.Standalone,
BuildTargetGroup.Android,
BuildTargetGroup.iOS
};
private static BuildTargetGroup[] mobileBuildTargetGroups = new BuildTargetGroup[]
{
BuildTargetGroup.Android,
BuildTargetGroup.iOS,
BuildTargetGroup.WSA
};
private static void SetEnabled(string defineName, bool enable, bool mobile)
{
//Debug.Log("setting "+defineName+" to "+enable);
foreach (var group in mobile ? mobileBuildTargetGroups : buildTargetGroups)
{
var defines = GetDefinesList(group);
if (enable)
{
if (defines.Contains(defineName))
{
return;
}
defines.Add(defineName);
}
else
{
if (!defines.Contains(defineName))
{
return;
}
while (defines.Contains(defineName))
{
defines.Remove(defineName);
}
}
string definesString = string.Join(";", defines.ToArray());
PlayerSettings.SetScriptingDefineSymbolsForGroup(group, definesString);
}
}
}
}