123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #if UNITY_EDITOR
- using System;
- using System.Collections.Generic;
- using UnityEditor;
- using UnityEditor.Build;
- namespace Animancer.Editor
- {
-
-
-
-
-
- public static class ScriptingDefineSymbols
- {
-
-
- #if UNITY_2021_2_OR_NEWER
- private static NamedBuildTarget CurrentBuildTarget
- {
- get
- {
- var buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup;
- return NamedBuildTarget.FromBuildTargetGroup(buildTargetGroup);
- }
- }
- #else
- private static BuildTargetGroup CurrentBuildTarget
- => EditorUserBuildSettings.selectedBuildTargetGroup;
- #endif
-
-
- public static string[] Symbols
- {
- get
- {
- var currentBuildTarget = CurrentBuildTarget;
- #if UNITY_2021_2_OR_NEWER
- PlayerSettings.GetScriptingDefineSymbols(currentBuildTarget, out var symbols);
- return symbols;
- #else
- var symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(currentBuildTarget);
- return symbols.Split(';');
- #endif
- }
- set
- {
- var currentBuildTarget = CurrentBuildTarget;
- #if UNITY_2021_2_OR_NEWER
- PlayerSettings.SetScriptingDefineSymbols(currentBuildTarget, value);
- #else
- var joined = string.Join(";", value);
- PlayerSettings.SetScriptingDefineSymbolsForGroup(currentBuildTarget, joined);
- #endif
- }
- }
-
-
- public static bool IsSymbolDefined(string symbol)
- {
- return Array.IndexOf(Symbols, symbol) >= 0;
- }
-
-
- public static void SetSymbolDefined(string symbol, bool isDefined)
- {
- var symbols = Symbols;
- var index = Array.IndexOf(symbols, symbol);
- if (isDefined)
- {
- if (index >= 0)
- return;
- var newSymbols = new List<string>();
- newSymbols.AddRange(symbols);
- newSymbols.Add(symbol);
- symbols = newSymbols.ToArray();
- }
- else
- {
- if (index < 0)
- return;
- var newSymbols = new List<string>(symbols);
- newSymbols.RemoveAt(index);
- symbols = newSymbols.ToArray();
- }
- Symbols = symbols;
- }
-
- }
- }
- #endif
|