SW 중심대학 OSS GIT 서버 박건태, 이승준, 고기완, 이준호 새로운 배포
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

82 lines
1.9 KiB

using System.Collections.Generic;
using UnityEditor;
/// <summary>
/// Utility class that manages Define Symbols for a given set of build targets.
/// </summary>
public class DefineSymbolsManager {
private Dictionary<BuildTargetGroup, DefineSymbols> defineSymbols = new Dictionary<BuildTargetGroup, DefineSymbols>();
public DefineSymbolsManager(BuildTargetGroup[] groups)
{
foreach (var group in groups)
{
var symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(group);
defineSymbols.Add(group, new DefineSymbols(symbols));
}
}
public void UpdateFromBuildSettings()
{
var groups = defineSymbols.Keys;
defineSymbols = new Dictionary<BuildTargetGroup, DefineSymbols>();
foreach (var group in groups)
{
var symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(group);
defineSymbols.Add(group, new DefineSymbols(symbols));
}
}
public void ApplyToBuildSettings()
{
foreach (var e in defineSymbols)
{
PlayerSettings.SetScriptingDefineSymbolsForGroup(e.Key, e.Value.Get());
}
}
public void Add(string symbol)
{
foreach (var item in defineSymbols)
{
item.Value.Add(symbol);
}
}
public void Remove(string symbol)
{
foreach (var item in defineSymbols)
{
item.Value.Remove(symbol);
}
}
public bool Has(string symbol)
{
var has = true;
foreach (var item in defineSymbols)
{
has = has && item.Value.Has(symbol);
}
return has;
}
public override string ToString()
{
var str = "DefineSymbolsManager {\n";
foreach (var item in defineSymbols)
{
str += item.Key + ": " + item.Value.Get() + "\n";
}
str += "}";
return str;
}
}