static void PrintFile(TabWriter writer, BuildLayout.File file, int i) { AttrBuilder attr = new AttrBuilder(); if (file.PreloadInfoSize > 0) { attr.AddSize("PreloadInfoSize", (ulong)file.PreloadInfoSize); } attr.Add("MonoScripts", file.MonoScriptCount.ToString()); attr.AddSize("MonoScript Size", file.MonoScriptSize); using (writer.IndentScope($"File {i} {attr}")) { foreach (BuildLayout.SubFile sf in file.SubFiles) { AttrBuilder attr2 = new AttrBuilder(); attr2.AddSize("Size", sf.Size); writer.WriteLine($"{sf.Name} {attr2}"); } using (writer.IndentScope($"Data From Other Assets ({file.OtherAssets.Count})")) { foreach (BuildLayout.DataFromOtherAsset otherData in file.OtherAssets) { PrintDataFromOtherAsset(writer, otherData); } } } }
static void PrintArchive(TabWriter writer, BuildLayout.Bundle archive) { AttrBuilder attr = new AttrBuilder(); attr.AddSize("Size", archive.FileSize); attr.Add("Compression", archive.Compression); ulong bundleSize = archive.Files.First(x => x.BundleObjectInfo != null).BundleObjectInfo.Size; attr.AddSize("Asset Bundle Object Size", bundleSize); using (writer.IndentScope($"Archive {archive.Name} {attr}")) { if (archive.Dependencies != null) { writer.WriteLine("Bundle Dependencies: " + string.Join(", ", archive.Dependencies.Select(x => x.Name))); } if (archive.ExpandedDependencies != null) { writer.WriteLine("Expanded Bundle Dependencies: " + string.Join(", ", archive.ExpandedDependencies.Select(x => x.Name))); } using (writer.IndentScope($"Explicit Assets")) { for (int i = 0; i < archive.Files.Count; i++) { BuildLayout.File f = archive.Files[i]; foreach (BuildLayout.ExplicitAsset asset in f.Assets) { PrintAsset(writer, asset, i); } } } using (writer.IndentScope($"Files:")) { for (int i = 0; i < archive.Files.Count; i++) { PrintFile(writer, archive.Files[i], i); } } } }