static List <EditorToLinkerData.NativeTypeData> CollectNativeTypeData() { var items = new List <EditorToLinkerData.NativeTypeData>(); foreach (var unityType in UnityType.GetTypes()) { items.Add(new EditorToLinkerData.NativeTypeData { name = unityType.name, module = unityType.module }); } return(items); }
static List <EditorToLinkerData.NativeTypeData> CollectNativeTypeData() { var items = new List <EditorToLinkerData.NativeTypeData>(); foreach (var unityType in UnityType.GetTypes()) { items.Add(new EditorToLinkerData.NativeTypeData { name = unityType.name, module = unityType.module, baseName = unityType.baseClass != null ? unityType.baseClass.name : null, baseModule = unityType.baseClass != null ? unityType.baseClass.module : null, }); } return(items); }
protected AdvancedDropdownItem RebuildTree() { m_SearchableElements = new List <AdvancedDropdownItem>(); AdvancedDropdownItem root = new PresetTypeDropdownItem(L10n.Tr("Add Default Type")); var type = UnityType.FindTypeByName("AssetImporter"); var presetTypes = UnityType.GetTypes() .Where(t => t.IsDerivedFrom(type) && !t.isAbstract) .Select(t => new PresetType(t.persistentTypeID)) .Union( TypeCache.GetTypesDerivedFrom <ScriptedImporter>() .Where(t => !t.IsAbstract) .Select(t => new PresetType(t)) ) .Distinct() .Where(pt => pt.IsValidDefault()); // Add Importers var importersRoot = new PresetTypeDropdownItem(L10n.Tr("Importer")); root.AddChild(importersRoot); foreach (var presetType in presetTypes) { var menuPath = presetType.GetManagedTypeName(); var paths = menuPath.Split('.').Last(); var element = new PresetTypeDropdownItem(paths, presetType); importersRoot.AddChild(element); m_SearchableElements.Add(element); } // Add Components var menuDictionary = GetMenuDictionary(); menuDictionary.Sort(CompareItems); for (var i = 0; i < menuDictionary.Count; i++) { var menu = menuDictionary[i]; if (menu.Value == "ADD") { continue; } var menuPath = menu.Key; var paths = menuPath.Split('/'); var parent = root; for (var j = 0; j < paths.Length; j++) { var path = paths[j]; if (j == paths.Length - 1) { var element = new PresetTypeDropdownItem(path, menu.Value); parent.AddChild(element); m_SearchableElements.Add(element); continue; } var group = (PresetTypeDropdownItem)parent.children.SingleOrDefault(c => c.name == path); if (group == null) { group = new PresetTypeDropdownItem(path); parent.AddChild(group); } parent = group; } } // Add ScriptableObjects var scriptableObjectRoot = new PresetTypeDropdownItem(L10n.Tr("ScriptableObject")); root.AddChild(scriptableObjectRoot); foreach (var entry in GetScriptableObjectMenuItem()) { var menuPath = entry.Item2; var paths = menuPath.Split('/'); AdvancedDropdownItem parent = scriptableObjectRoot; for (var j = 0; j < paths.Length; j++) { var path = paths[j]; if (j == paths.Length - 1) { var presetType = new PresetType(entry.Item1); var element = new PresetTypeDropdownItem(path, presetType); parent.AddChild(element); m_SearchableElements.Add(element); continue; } var group = parent.children.SingleOrDefault(c => c.name == path); if (group == null) { group = new PresetTypeDropdownItem(path); parent.AddChild(group); } parent = group; } } return(root); }