DefineHelper.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.Linq;
  2. using UnityEditor;
  3. using UnityEditor.Build;
  4. using UnityEngine;
  5. namespace ET
  6. {
  7. public static class DefineHelper
  8. {
  9. public static void EnableDefineSymbols(string symbols, bool enable)
  10. {
  11. Debug.Log($"EnableDefineSymbols {symbols} {enable}");
  12. string defines = PlayerSettings.GetScriptingDefineSymbols(NamedBuildTarget.FromBuildTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup));
  13. var ss = defines.Split(';').ToList();
  14. if (enable)
  15. {
  16. if (ss.Contains(symbols))
  17. {
  18. return;
  19. }
  20. ss.Add(symbols);
  21. }
  22. else
  23. {
  24. if (!ss.Contains(symbols))
  25. {
  26. return;
  27. }
  28. ss.Remove(symbols);
  29. }
  30. Debug.Log($"EnableDefineSymbols {symbols} {enable}");
  31. defines = string.Join(";", ss);
  32. PlayerSettings.SetScriptingDefineSymbols(NamedBuildTarget.FromBuildTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup), defines);
  33. AssetDatabase.SaveAssets();
  34. AssetDatabase.Refresh();
  35. }
  36. }
  37. }