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); } } } for (int i = data.Count - 1; i >= 0; i--) { AssetInfo info = data[i]; if (info.hasChildren) { continue; } data.RemoveAt(i); } EditorUtility.ClearProgressBar(); }
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(); }
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(); }