Files
Studio/Assets/Editor/TriLibCore/Scripts/TriLibDefineSymbolsHelper.cs
2025-02-19 17:24:26 +09:00

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);
}
}
}