public static bool IsAddonAvailable(string addonName) { if (cacheAvailable.ContainsKey(addonName) == true) { return(cacheAvailable[addonName]); } var type = CoreUtilities.GetTypeFromAllAssemblies(addonName, string.Empty); var isActive = type != null; cacheAvailable.Add(addonName, isActive); CoreUtilities.GetAddon(addonName); return(isActive); }
public static bool IsAddonAvailable(string addonName) { if (CoreUtilities.cacheAvailable.ContainsKey(addonName) == true) { return(CoreUtilities.cacheAvailable[addonName]); } var type = CoreUtilities.GetTypeFromAllAssemblies(addonName, string.Format("UnityEditor.UI.Windows.Plugins.{0}", addonName)); var isActive = type != null; CoreUtilities.cacheAvailable.Add(addonName, isActive); CoreUtilities.GetAddon(addonName); return(isActive); }
public static bool ButtonAddon(string addonName, string buttonCaption, string description, GUIStyle buttonStyle, params GUILayoutOption[] options) { var result = false; if (CoreUtilities.IsAddonAvailable(addonName) == true) { if (GUILayout.Button(buttonCaption, buttonStyle, options) == true) { result = true; } } else { if (string.IsNullOrEmpty(description) == false) { EditorGUILayout.HelpBox("Addon `" + addonName + "` not found. Install it from the site: " + VersionInfo.DOWNLOAD_LINK, MessageType.None); EditorGUILayout.HelpBox(description, MessageType.Info); } } return(result); }
public static void LoadAddons() { if (CoreUtilities.addonsLoaded == true) { return; } cache.Clear(); cacheAvailable.Clear(); var list = Resources.LoadAll("UI.Windows/AddonInfo"); foreach (var item in list) { var addonName = item.ToString().Trim(); if (string.IsNullOrEmpty(addonName) == false) { CoreUtilities.IsAddonAvailable(addonName); } } CoreUtilities.addonsLoaded = true; }
public static IWindowAddon GetAddon(string addonName) { if (cacheAvailable.ContainsKey(addonName) == false || cacheAvailable[addonName] == false) { return(null); } if (cache.ContainsKey(addonName) == true) { return(cache[addonName]); } var type = CoreUtilities.GetTypeFromAllAssemblies(addonName, string.Empty); if (type != null) { var addon = System.Activator.CreateInstance(type) as IWindowAddon; cache.Add(addonName, addon); return(addon); } return(null); }
public static IWindowAddon GetAddon(string addonName) { if (CoreUtilities.cacheAvailable.ContainsKey(addonName) == false || CoreUtilities.cacheAvailable[addonName] == false) { return(null); } if (CoreUtilities.cache.ContainsKey(addonName) == true) { return(CoreUtilities.cache[addonName]); } var type = CoreUtilities.GetTypeFromAllAssemblies(addonName, string.Format("UnityEditor.UI.Windows.Plugins.{0}", addonName)); if (type != null) { var addon = System.Activator.CreateInstance(type) as IWindowAddon; CoreUtilities.cache.Add(addonName, addon); return(addon); } return(null); }