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");
            }
        });
    }
예제 #2
0
 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>();
        }
    }
예제 #4
0
    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();
            }
        }
    }
예제 #5
0
    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");
    }
예제 #6
0
    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);
            }
        }
    }