public override void Unload() { if (!MyGroupKeys.Any()) { return; } foreach (var groupKey in MyGroupKeys) { // Destroy windows within this group foreach (var windowVisualizer in WindowVisualizers[groupKey].Values) { windowVisualizer.Destroy(); } // Destroy this group GroupVisualizers[groupKey].Destroy(); // Clean up registry to match GroupVisualizers.Remove(groupKey); WindowVisualizers.Remove(groupKey); } MyGroupKeys.Clear(); base.Unload(); }
private static DisassemblyGroupVisualizer GetGroupVisualizer(string groupKey) { // Return if already made if (GroupVisualizers.ContainsKey(groupKey)) { return(GroupVisualizers[groupKey]); } // Create var groupVisualizerGo = VisualizerFactory.InstantiateDisassemblyGroup(); var groupVisualizer = groupVisualizerGo.GetComponent <DisassemblyGroupVisualizer>(); // Register GroupVisualizers.Add(groupKey, groupVisualizer); WindowVisualizers.Add(groupKey, new Dictionary <string, DisassemblyWindowVisualizer>()); // Return return(groupVisualizer); }