Beispiel #1
0
        public override void SetDataPaths(List <string> queryPahts)
        {
            base.SetDataPaths(queryPahts);

            data = FileListToAssetInfos(queryPahts);

            List <string> fileList = AssetDanshariUtility.GetAllPrefebFile(AssetDanshariUtility.ValidFile);
            var           rstList  = AssetDanshariUtility.ResultList(fileList.Count, queryPahts.Count);

            ThreadDoFilesTextSearch(fileList, queryPahts, rstList);

            // 根据搜索结果来挂载额外信息
            for (int i = 0; i < fileList.Count; i++)
            {
                for (int j = 0; j < queryPahts.Count; j++)
                {
                    if (rstList[i][j])
                    {
                        AssetInfo info = GenAssetInfo(fileList[i]);
                        info.isRst = true;
                        data[j].AddChild(info);
                    }
                }
            }
            for (int i = data.Count - 1; i >= 0; i--)
            {
                AssetInfo info = data[i];
                if (info.hasChildren)
                {
                    continue;
                }
                data.RemoveAt(i);
            }
            EditorUtility.ClearProgressBar();
        }
Beispiel #2
0
        public override void SetDataPaths(List <string> queryPaths)
        {
            base.SetDataPaths(queryPaths);
            data = FileListToAssetInfos(queryPaths);

            List <string> resFileList   = AssetDanshariUtility.GetAllFile(AssetDanshariUtility.ValidFile);
            var           searchRetList = AssetDanshariUtility.ResultList(queryPaths.Count, resFileList.Count);

            ThreadDoFilesTextSearch(queryPaths, resFileList, searchRetList);

            //隶属信息
            var spritePackingDict = new Dictionary <string, string>();

            // 根据搜索结果来挂载额外信息
            for (int i = 0; i < queryPaths.Count; i++)
            {
                for (int j = 0; j < resFileList.Count; j++)
                {
                    if (searchRetList[i][j])
                    {
                        AssetInfo info = GenAssetInfo(resFileList[j]);
                        info.isRst = true;
                        data[i].AddChild(info);

                        // 隶属
                        string val;
                        if (!spritePackingDict.TryGetValue(info.fileRelativePath, out val))
                        {
                            var             assetImporter   = AssetImporter.GetAtPath(info.fileRelativePath);
                            TextureImporter textureImporter = assetImporter as TextureImporter;
                            if (textureImporter)
                            {
                                val = textureImporter.spritePackingTag;
                            }
                        }

                        info.bindObj = val;
                    }
                }
            }

            for (int i = data.Count - 1; i >= 0; i--)
            {
                AssetInfo info = data[i];
                if (info.hasChildren)
                {
                    continue;
                }
                data.RemoveAt(i);
            }
            EditorUtility.ClearProgressBar();
        }
Beispiel #3
0
        public override void SetDataPaths(List <string> queryPahts)
        {
            base.SetDataPaths(queryPahts);
            data = FileListToAssetInfos(queryPahts);

            List <string> fileList = AssetDanshariUtility.GetAllFile(AssetDanshariUtility.ValidFile);
            var           rstList  = AssetDanshariUtility.ResultList(fileList.Count, queryPahts.Count);

            ThreadDoFilesTextSearch(fileList, queryPahts, rstList);

            for (int i = 0; i < fileList.Count; i++)
            {
                for (int j = 0; j < queryPahts.Count; j++)
                {
                    if (rstList[i][j])
                    {
                        AssetInfo info = GenAssetInfo(fileList[i]);
                        info.isRst = true;
                        data[j].AddChild(info);
                    }
                }
            }

            string[] md5Array = new string[queryPahts.Count];
            ThreadDoFileMD5(queryPahts, md5Array);
            Dictionary <string, List <AssetInfo> > dic = new Dictionary <string, List <AssetInfo> >();

            for (int i = 0; i < md5Array.Length; i++)
            {
                string           md5  = md5Array[i];
                List <AssetInfo> list = null;
                if (dic.TryGetValue(md5, out list))
                {
                    list.Add(data[i]);
                }
                else
                {
                    dic.Add(md5, new List <AssetInfo>()
                    {
                        data[i]
                    });
                }
            }
            var assetInfos = new List <AssetInfo>();

            foreach (var pair in dic)
            {
                if (pair.Value.Count < 2)
                {
                    continue;
                }
                AssetInfo dirInfo = new AssetInfo(GetAutoId(), String.Empty, String.Format(AssetDanshariStyle.Get().duplicateGroup, pair.Value.Count()));
                for (int i = 0; i < pair.Value.Count; i++)
                {
                    dirInfo.AddChild(pair.Value[i]);
                }
                assetInfos.Add(dirInfo);
            }

            if (assetInfos.Count > 0)
            {
                data = assetInfos;
            }
            else
            {
                data = null;
            }
            EditorUtility.ClearProgressBar();
        }