ToggleSymbol

This commit is contained in:
ousttrue 2021-05-19 17:53:13 +09:00
parent 9dd09ebf00
commit aab1596a9a
3 changed files with 51 additions and 30 deletions

View File

@ -51,5 +51,50 @@ namespace UniGLTF
return s_axis.Value;
}
}
public static bool HasSymbol(string symbol)
{
var target = EditorUserBuildSettings.selectedBuildTargetGroup;
var current = PlayerSettings.GetScriptingDefineSymbolsForGroup(target).Split(';');
return current.Contains(symbol);
}
public static void AddSymbol(string symbol)
{
var target = EditorUserBuildSettings.selectedBuildTargetGroup;
var current = PlayerSettings.GetScriptingDefineSymbolsForGroup(target).Split(';');
PlayerSettings.SetScriptingDefineSymbolsForGroup(target,
string.Join(";", current.Concat(new[] { symbol }))
);
}
public static void RemoveSymbol(string symbol)
{
var target = EditorUserBuildSettings.selectedBuildTargetGroup;
var current = PlayerSettings.GetScriptingDefineSymbolsForGroup(target).Split(';');
PlayerSettings.SetScriptingDefineSymbolsForGroup(target,
string.Join(";", current.Where(x => x != symbol))
);
}
public static void ToggleSymbol(string title, string symbol)
{
EditorGUI.BeginChangeCheck();
var isStop = HasSymbol(symbol);
var newValue = GUILayout.Toggle(isStop, title);
EditorGUILayout.HelpBox($"define C# symbol '{symbol}'", MessageType.Info, true);
if (EditorGUI.EndChangeCheck())
{
if (newValue)
{
AddSymbol(symbol);
}
else
{
RemoveSymbol(symbol);
}
}
}
}
}

View File

@ -5,8 +5,13 @@ namespace UniGLTF
{
public enum Axes
{
#if UNIGLTF_DEFAULT_AXES_X
X,
Z,
#else
Z,
X,
#endif
}
public interface IAxisInverter

View File

@ -12,36 +12,7 @@ namespace VRM
[PreferenceItem("VRM0")]
private static void OnPreferenceGUI()
{
EditorGUI.BeginChangeCheck();
var target = EditorUserBuildSettings.selectedBuildTargetGroup;
var current = PlayerSettings.GetScriptingDefineSymbolsForGroup(target).Split(';');
var stop = current.Any(x => x == ASSETPOSTPROCESSOR_STOP_SYMBOL);
var newValue = GUILayout.Toggle(stop, KEY_STOP_VRMASSETPOSTPROCESSOR);
EditorGUILayout.HelpBox($"define C# symbol '{ASSETPOSTPROCESSOR_STOP_SYMBOL}'", MessageType.Info, true);
if (EditorGUI.EndChangeCheck())
{
}
if (stop != newValue)
{
stop = newValue;
if (stop)
{
// add symbol
PlayerSettings.SetScriptingDefineSymbolsForGroup(target,
string.Join(";", current.Concat(new[] { ASSETPOSTPROCESSOR_STOP_SYMBOL }))
);
}
else
{
// remove symbol
PlayerSettings.SetScriptingDefineSymbolsForGroup(target,
string.Join(";", current.Where(x => x != ASSETPOSTPROCESSOR_STOP_SYMBOL))
);
}
}
UniGLTF.UniGLTFPreference.ToggleSymbol(KEY_STOP_VRMASSETPOSTPROCESSOR, ASSETPOSTPROCESSOR_STOP_SYMBOL);
}
}
}