using System.Linq; using UnityEditor; using UnityEditor.Build; using UnityEngine; namespace ET { public static class DefineHelper { public static void EnableDefineSymbols(string symbols, bool enable) { Debug.Log($"EnableDefineSymbols {symbols} {enable}"); string defines = PlayerSettings.GetScriptingDefineSymbols(NamedBuildTarget.FromBuildTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup)); var ss = defines.Split(';').ToList(); if (enable) { if (ss.Contains(symbols)) { return; } ss.Add(symbols); } else { if (!ss.Contains(symbols)) { return; } ss.Remove(symbols); } Debug.Log($"EnableDefineSymbols {symbols} {enable}"); defines = string.Join(";", ss); PlayerSettings.SetScriptingDefineSymbols(NamedBuildTarget.FromBuildTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup), defines); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } } }