#if UNITY_EDITOR using System; using System.Collections.Generic; using UnityEditor; namespace DTT.Utils.EditorUtilities { /// /// Provides player settings related utility methods. /// public static class PlayerSettingsUtility { /// /// Adds a define symbol to the selected build target group its defined symbols. /// /// The symbol to add. public static void AddScriptingDefineSymbol(string symbol) { if (symbol == null) throw new ArgumentNullException("The symbol to add was null."); BuildTargetGroup buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup; string defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup); List definesList = new List(defines.Split(';')); if (!definesList.Contains(symbol)) definesList.Add(symbol); PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, string.Join(";", definesList)); } /// /// Removes the define symbol from the selected build target group its defined symbols. /// /// The symbol to remove. public static void RemoveScriptingDefineSymbol(string symbol) { if (symbol == null) throw new ArgumentNullException("The symbol to remove was null."); BuildTargetGroup buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup; string defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup); List definesList = new List(defines.Split(';')); if (definesList.Contains(symbol)) definesList.Remove(symbol); PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, string.Join(";", definesList)); } } } #endif