Код: Выделить всё
public static class ScriptingSymbolDefiner_JSON_DOT_NET
{
//different for every definer class
private const string Symbol = "JSON_DOT_NET";
private static List buildTargets = new()
{
NamedBuildTarget.Android, NamedBuildTarget.iOS, NamedBuildTarget.NintendoSwitch, NamedBuildTarget.Server,
NamedBuildTarget.Standalone
};
//from here on all code will be the same for every definer class
private const string MenuName = "Wichtel/Scripting Symbols/" + Symbol;
private const string SettingName = "EnableScriptingSymbol_" + Symbol;
public static bool IsEnabled
{
get => EditorPrefs.GetBool(SettingName, false);
set => EditorPrefs.SetBool(SettingName, value);
}
[MenuItem(MenuName)]
private static void ToggleAction()
{
IsEnabled = !IsEnabled;
SymbolDefinerUtilities.UpdateSymbolDefinition(Symbol, IsEnabled, buildTargets);
}
[MenuItem(MenuName, true)]
private static bool ToggleActionValidate()
{
Menu.SetChecked(MenuName, IsEnabled);
return true;
}
}
Есть ли возможность сделать это более элегантно с меньшим количеством шаблонов? Абстрактный базовый класс не работает для статических классов.
Подробнее здесь: https://stackoverflow.com/questions/783 ... ic-classes