void CreateFullTypeNameToTree(Assembly ass) { Dictionary <string, Dictionary <string, object> > alldata = new Dictionary <string, Dictionary <string, object> >(); Type[] types = ass.GetTypes(); for (int j = 0; j < types.Length; j++) { Dictionary <string, object> tempData = new Dictionary <string, object>(); string typeName = types[j].FullName; tempData.Add("AssemblyFullName", ass.FullName); tempData.Add("TypeFullName", typeName); tempData.Add("Type", types[j]); string path = typeName.Replace(".", "/"); alldata.Add(path, tempData); } string[] paths = new List <string>(alldata.Keys).ToArray(); control = EditorDrawFileDirectory.GetFileDirectoryInfo(paths, false, "cs Script Icon", (node) => { if (alldata.ContainsKey(node.relativeRootPath)) { node.otherData = alldata[node.relativeRootPath]; } else { node.isDirectory = true; } if (!node.otherData.ContainsKey("Type") || node.isDirectory) { node.content = EditorDrawFileDirectory.GetPathGUIContent(node.relativeRootPath, "Folder Icon"); } }); }
void DrawFileDirectoryGUI() { if (fileData == null) { string[] paths = PathUtils.GetDirectoryFilePath(assetPath); fileData = EditorDrawFileDirectory.GetFileDirectoryInfo(paths); UpdateChooseFileData(fileData); } GUILayout.Label("选择打成一个包的目录:"); pos0 = GUILayout.BeginScrollView(pos0, "box"); EditorDrawFileDirectory.DrawFileDirectory(fileData, ShowFileDirectoryType.OnlyDirectory, null, null, true, PakagOneChooseCallBack); GUILayout.EndScrollView(); }
void OnGUI() { GUILayout.Space(6); selectAss = EditorDrawGUIUtil.DrawPopup("程序集:", selectAss, allAssemblyName, PopupSelectChange); pos = GUILayout.BeginScrollView(pos, "box"); if (control == null) { return; } EditorDrawFileDirectory.DrawFileDirectory(control, ShowFileDirectoryType.ShowAllFile, null, SelectCallBack); GUILayout.EndScrollView(); if (CanShowDetill && GUILayout.Button("查看详情")) { ReflectionClassInfoEditorWindow.AddType((Type)selectItem.otherData["Type"]); FocusWindowIfItsOpen <ReflectionClassInfoEditorWindow>(); } }
void SetLayersTagsGUI() { pos0 = GUILayout.BeginScrollView(pos0, "box"); EditorDrawFileDirectory.DrawFileDirectory(resFileData, ShowFileDirectoryType.ShowAllFile, null, SelectCallback, true, ChooseCallBack); GUILayout.EndScrollView(); if (chooseItemList.Count > 0) { GUILayout.Label("设置:"); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); selectLayer = EditorDrawGUIUtil.DrawPopup("Layer", selectLayer, AssetsSortManagement.Layers); selectTag = EditorDrawGUIUtil.DrawPopup("Tag", selectTag, AssetsSortManagement.Tags); GUILayout.EndVertical(); if (GUILayout.Button("确定")) { for (int i = 0; i < chooseItemList.Count; i++) { string name = chooseItemList[i].FileNameWithoutExtension; AssetsSortManagement.SetLayerTag(name, selectLayer, selectTag); } } GUILayout.EndHorizontal(); for (int i = 0; i < chooseItemList.Count; i++) { GUILayout.BeginHorizontal(); GUILayout.Label(chooseItemList[i].content); GUILayout.FlexibleSpace(); string name = chooseItemList[i].FileNameWithoutExtension; LayersTagsData lt = AssetsSortManagement.GetLayersTagsData(name); if (lt != null) { GUILayout.Label("Layer: " + lt.layer + " Tag: " + lt.tag); } GUILayout.EndHorizontal(); } } }
public static void RefreshResData() { string[] paths = PathUtils.GetDirectoryFilePath(ResourcesAssetsPath); paths = PathUtils.RemovePathWithEnds(paths, new string[] { ".meta" }); if (instance) { instance.resFileData = EditorDrawFileDirectory.GetFileDirectoryInfo(paths, true); } List <string> nameList = new List <string>(); foreach (var item in paths) { string name = Path.GetFileNameWithoutExtension(item); AssetsSortManagement.AddNewDefultLayerTag(name); nameList.Add(name); } List <string> removeNames = new List <string>(); foreach (var item in AssetsSortManagement.LayersTagsDataList) { if (nameList.Contains(item.name)) { continue; } else { removeNames.Add(item.name); } } foreach (var item in removeNames) { AssetsSortManagement.DeleteLayersTagsItem(item); } //Debug.Log("RefreshResData"); }
void SetPreLoadFileGUI() { GUILayout.Space(7); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Refresh", GUILayout.Width(60))) { preLoadFileData = null; return; } GUILayout.EndHorizontal(); GUILayout.Space(5); if (preLoadFileData == null) { string[] paths = PathUtils.GetDirectoryFilePath(AssetBundlesOutputPath); preLoadFileData = EditorDrawFileDirectory.GetFileDirectoryInfo(paths, true); //paths = PathUtils.RemovePathWithEnds(paths, new string[] { ".meta" }); UpdatePreLoadFileData(preLoadFileData); tempAllFilePath = PathUtils.GetDirectoryFilePath(AssetBundlesOutputPath); } GUILayout.Label("选择预加载文件:"); pos1 = GUILayout.BeginScrollView(pos1, "box"); EditorDrawFileDirectory.DrawFileDirectory(preLoadFileData, ShowFileDirectoryType.ShowAllFile, new string[] { ".assetbundle" }, null, true, PreLoadChooseCallBack); GUILayout.EndScrollView(); GUILayout.Space(8); GUILayout.Label("选中的文件路径:"); pos4 = GUILayout.BeginScrollView(pos4, "box"); foreach (string p in settingData.preLoadResPaths) { GUILayout.BeginHorizontal("box"); if (!OtherUtils.ArrayContains(tempAllFilePath, p)) { GUI.color = Color.red; } GUILayout.Label("预加载路径:" + p); if (GUI.color == Color.red) { GUILayout.FlexibleSpace(); GUILayout.Label("文件不存在"); } GUI.color = oldGUIColor; GUILayout.EndHorizontal(); GUILayout.Space(4); } GUILayout.EndScrollView(); GUILayout.Space(10); if (GUILayout.Button("移除不存在预加载文件路径")) { List <string> tList = new List <string>(); foreach (string p in settingData.preLoadResPaths) { if (!OtherUtils.ArrayContains(tempAllFilePath, p)) { tList.Add(p); } } foreach (string p in tList) { settingData.preLoadResPaths.Remove(p); } } }