using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; namespace Beyond { [InitializeOnLoad] public class DebugLoggerInitializer : MonoBehaviour { /* 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 GetDefinesList(BuildTargetGroup group) { return new List(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); } } } }