Files
2026-09-21 12:15:57 +03:00

53 lines
1.5 KiB
C#

using System.Collections.Generic;
using UnityEditor;
using UnityEditor.Build;
public static class UnityScriptingDefineSymbols
{
public static bool IsDefined(string symbol)
{
var platform = EditorUserBuildSettings.selectedBuildTargetGroup;
var symbols = GetSymbols(platform);
return symbols.Contains(symbol);
}
public static void Add(string symbol, BuildTargetGroup platform)
{
var symbols = GetSymbols(platform);
symbols.Add(symbol);
SetSymbols(symbols, platform);
}
public static void Remove(string symbol, BuildTargetGroup platform)
{
var symbols = GetSymbols(platform);
symbols.Remove(symbol);
SetSymbols(symbols, platform);
}
private static HashSet<string> GetSymbols(BuildTargetGroup platform)
{
return new HashSet<string>(PlayerSettings.GetScriptingDefineSymbols(NamedBuildTarget.FromBuildTargetGroup(platform)).Split(';'));
}
private static void SetSymbols(HashSet<string> symbols, BuildTargetGroup platform)
{
PlayerSettings.SetScriptingDefineSymbols(NamedBuildTarget.FromBuildTargetGroup(platform), string.Join(";", symbols));
}
public static void Toggle(string symbol, BuildTargetGroup platform)
{
var symbols = GetSymbols(platform);
if (symbols.Contains(symbol))
{
symbols.Remove(symbol);
}
else
{
symbols.Add(symbol);
}
SetSymbols(symbols, platform);
}
}