public static bool EnforceAppropriateScriptDefines() { string defineStr = PlayerSettings.GetScriptingDefineSymbolsForGroup(BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget)); List <string> defineList = new List <string>(); if (!string.IsNullOrEmpty(defineStr)) { defineList.AddRange(defineStr.Split(';')); } bool anyChanges = false; for (int i = 0; i < FILE_DEFINES.Length; i++) { FileDrivenDefine define = FILE_DEFINES[i]; bool changed = EnforceDefineAutomatically(define.defineFlag, define.fileName, defineList); if (changed && defineList.Contains(define.defineFlag)) { Debug.Log("Enabled MixCast " + define.systemName + " support"); } anyChanges |= changed; } if (anyChanges) { defineStr = string.Join(";", defineList.ToArray()); PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget), defineStr); } return(anyChanges); }
public static void DisableDefine(FileDrivenDefine define) { if (!IsDefineEnabled(define.defineFlag)) { return; } BuildTargetGroup buildTarget = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); string defineStr = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTarget); List <string> defineList = new List <string>(defineStr.Split(';')); defineList.Remove(define.defineFlag); defineStr = string.Join(";", defineList.ToArray()); PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTarget, defineStr); }
public static bool TryEnableDefine(FileDrivenDefine define) { if (IsDefineEnabled(define.defineFlag)) { return(true); } bool libraryFound = Directory.GetFiles(Application.dataPath, define.fileName, SearchOption.AllDirectories).Length > 0; if (!libraryFound) { return(false); } BuildTargetGroup buildTarget = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); string defineStr = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTarget); defineStr += ";" + define.defineFlag; PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTarget, defineStr); return(true); }