/// <summary> /// /// </summary> private void AppendDependencies(StringBuilder sb, IBundleFileManifest bundle, AssetBundleManifest manifest) { var currentName = bundle.ABName; var directs = manifest.TryGetDirectDependencies(currentName); sb.AppendLine($"[{currentName}]"); foreach (var direct in directs) { sb.Append("\t").AppendLine($"- {direct} "); // 直接依存の全依存に自分自身が含まれていたらアウト var dependencies = manifest.TryGetDependencies(direct); foreach (var dependency in dependencies) { sb.Append("\t\t").AppendLine($"- {dependency} "); if (dependency == currentName) { sb.Append("\t\t\t").AppendLine($"***** Reference Loop ****"); } } } }
/// <summary> /// 単一データ作成 /// </summary> private BundleBuildData CreateBuildData(IAccessLocation file, IBundleFileManifest buildFileData, IReadOnlyDictionary <string, string> table, AssetBundleManifest manifest) { var identifier = buildFileData?.Identifier; var abName = buildFileData?.ABName; var crc = FsUtillity.TryGetCrc(file.FullPath); var hash = manifest.TryGetHashString(abName); var dependencies = manifest.TryGetDependencies(abName).Select(c => table[c]).ToArray(); var size = FsUtillity.TryGetFileSize(file.FullPath); var d = new BundleBuildData { Path = abName, Identifier = identifier, Assets = buildFileData?.Address, Hash = hash, Crc = crc, Dependencies = dependencies, FileSize = size, Labels = buildFileData?.Labels, }; return(d); }