public static void RegisterVisualizer(Type forType, ICustomVisualizer visualizer, bool registerDerivedTypes = false) { Ensure.ArgumentNotNull(visualizer, "visualizer"); if (VisualizationManager._visualizerLookup == null) { VisualizationManager._visualizerLookup = new Dictionary <Type, ICustomVisualizer>(); } if (!(forType.IsAbstract | registerDerivedTypes)) { if (VisualizationManager._visualizerLookup.ContainsKey(forType)) { Debug.LogWarning(string.Format("A visualizer for type {0} has already been registered, skipping {1}.", forType.Name, visualizer.GetType().Name)); return; } VisualizationManager._visualizerLookup.Add(forType, visualizer); } else { foreach (Type derived in VisualizationManager.GetDerived(forType)) { if (!VisualizationManager._visualizerLookup.ContainsKey(derived)) { VisualizationManager._visualizerLookup.Add(derived, visualizer); } else { Debug.LogWarning(string.Format("A visualizer for type {0} has already been registered, skipping {1}.", derived.Name, visualizer.GetType().Name)); } } } }
public static void UnregisterVisualizer(Type forType, bool registeredDerivedTypes = false) { if (VisualizationManager._visualizerLookup == null) { return; } if (!(forType.IsAbstract | registeredDerivedTypes)) { VisualizationManager._visualizerLookup.Remove(forType); } else { foreach (Type derived in VisualizationManager.GetDerived(forType)) { VisualizationManager._visualizerLookup.Remove(derived); } } }