60 lines
2.4 KiB
C#
60 lines
2.4 KiB
C#
using UnityEditor;
|
|
using UnityEditor.Build;
|
|
|
|
namespace TriLibCore.Editor
|
|
{
|
|
public static class TriLibDefineSymbolsHelper
|
|
{
|
|
public static bool IsSymbolDefined(string targetDefineSymbol)
|
|
{
|
|
var targetGroup = NamedBuildTarget.FromBuildTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
|
|
//var defineSymbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
|
|
var defineSymbols = PlayerSettings.GetScriptingDefineSymbols(targetGroup);
|
|
var defineSymbolsArray = defineSymbols.Split(';');
|
|
for (var i = 0; i < defineSymbolsArray.Length; i++)
|
|
{
|
|
var defineSymbol = defineSymbolsArray[i];
|
|
var trimmedDefineSymbol = defineSymbol.Trim();
|
|
if (trimmedDefineSymbol == targetDefineSymbol)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public static void UpdateSymbol(string targetDefineSymbol, bool value)
|
|
{
|
|
var targetGroup = NamedBuildTarget.FromBuildTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
|
|
var defineSymbols = PlayerSettings.GetScriptingDefineSymbols(targetGroup);
|
|
//var defineSymbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
|
|
var defineSymbolsArray = defineSymbols.Split(';');
|
|
var newDefineSymbols = string.Empty;
|
|
var isDefined = false;
|
|
for (var i = 0; i < defineSymbolsArray.Length; i++)
|
|
{
|
|
var defineSymbol = defineSymbolsArray[i];
|
|
var trimmedDefineSymbol = defineSymbol.Trim();
|
|
if (trimmedDefineSymbol == targetDefineSymbol)
|
|
{
|
|
if (!value)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
isDefined = true;
|
|
}
|
|
|
|
newDefineSymbols += string.Format("{0};", trimmedDefineSymbol);
|
|
}
|
|
|
|
if (value && !isDefined)
|
|
{
|
|
newDefineSymbols += string.Format("{0};", targetDefineSymbol);
|
|
}
|
|
PlayerSettings.SetScriptingDefineSymbols(targetGroup, newDefineSymbols);
|
|
//PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, newDefineSymbols);
|
|
}
|
|
}
|
|
} |