public AssetDependencyManager(AllAssetManager assetManager) : this() { var progressNameTmp = string.Format(progressName, DependencyResearcher.stepCount); var assets = assetManager.assetList; int count = assets.Count; var recDepDict = new Dictionary <AssetInfo, List <AssetInfo> >(); var noRecDepDict = new Dictionary <AssetInfo, List <AssetInfo> >(); try { for (int i = 0; i < count; ++i) { var asset = assets[i]; EditorUtility.DisplayProgressBar(progressNameTmp, string.Format("check {0}...", asset.Path), (float)i / count); var recDeps = new List <AssetInfo>(); var noRecDeps = new List <AssetInfo>(); //Debug.Log(string.Format("<color=#ff0000ff>{0}</color>", asset.Path)); var recDepPaths = AssetDatabase.GetDependencies(asset.Path, true); foreach (var path in recDepPaths) { if (assetManager.pathDict.TryGetValue(path, out var info)) { recDeps.Add(info); } } var noRecDepPaths = AssetDatabase.GetDependencies(asset.Path, false); foreach (var path in noRecDepPaths) { if (assetManager.pathDict.TryGetValue(path, out var info)) { noRecDeps.Add(info); } } recDepDict[asset] = recDeps; noRecDepDict[asset] = noRecDeps; } recurDependencyList = recDepDict; noRecurDependencyList = noRecDepDict; } finally { EditorUtility.ClearProgressBar(); } }
static void Search() { var assetManager = new AllAssetManager(); var dependManager = new AssetDependencyManager(assetManager); var exts = new Dictionary <string, int>(10); foreach (var info in assetManager.assetList) { var ext = info.Extension.ToLower(); if (exts.TryGetValue(ext, out var count)) { exts[ext] = count + 1; } else { exts[ext] = 1; } } var sortedExts = exts.OrderByDescending(a => a.Value); var sb = new System.Text.StringBuilder(); sb.AppendLine("Extensions:"); foreach (var extPair in sortedExts) { sb.AppendLine(string.Format("{0}: {1}", extPair.Value, extPair.Key)); } Debug.Log(sb.ToString()); sb.Clear(); sb.AppendLine("Broken assets:"); foreach (var info in assetManager.brokenAssetList) { sb.AppendLine(info.Path); } Debug.LogWarning(sb.ToString()); }