using System.Collections.Generic; using UnityEditor; namespace RotaryHeart.Lib { public static class Definer { public static void ApplyDefines(List defines) { if (defines == null || defines.Count == 0) return; string availableDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup); List definesSplit = new List(availableDefines.Split(';')); foreach (string define in defines) if (!definesSplit.Contains(define)) definesSplit.Add(define); _ApplyDefine(string.Join(";", definesSplit.ToArray())); } public static void RemoveDefines(List defines) { if (defines == null || defines.Count == 0) return; string availableDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup); List definesSplit = new List(availableDefines.Split(';')); foreach (string define in defines) definesSplit.Remove(define); _ApplyDefine(string.Join(";", definesSplit.ToArray())); } static void _ApplyDefine(string define) { if (string.IsNullOrEmpty(define)) return; PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, define); } } }