public override BuildPipelineCodes Convert(List <BuildOutput.Result> writenData, SceneResourceMap sceneResources, BuildCompression compression, string outputFolder, out BundleCRCMap output) { StartProgressBar("Archiving Resource Files", writenData.Count); output = new BundleCRCMap(); foreach (var bundle in writenData) { if (!UpdateProgressBar(string.Format("Bundle: {0}", bundle.assetBundleName))) { EndProgressBar(); return(BuildPipelineCodes.Canceled); } var resourceFiles = new List <ResourceFile>(bundle.resourceFiles); foreach (var asset in bundle.assetBundleAssets) { ResourceFile[] sceneFiles; if (!sceneResources.TryGetValue(asset, out sceneFiles)) { continue; } resourceFiles.AddRange(sceneFiles); } var filePath = string.Format("{0}/{1}", outputFolder, bundle.assetBundleName); uint crc; Hash128 hash = CalculateInputHash(resourceFiles, compression); if (UseCache && TryLoadFromCache(hash, outputFolder, out crc)) { output[filePath] = crc; continue; } crc = BundleBuildInterface.ArchiveAndCompress(resourceFiles.ToArray(), filePath, compression); output[filePath] = crc; if (UseCache && !TrySaveToCache(hash, bundle.assetBundleName, crc, outputFolder)) { BuildLogger.LogWarning("Unable to cache ResourceFileArchiver result for bundle {0}.", bundle.assetBundleName); } } if (!EndProgressBar()) { return(BuildPipelineCodes.Canceled); } return(BuildPipelineCodes.Success); }
public override BuildPipelineCodes Convert(BuildResultInfo resultInfo, BuildCompression compression, string outputFolder, out BundleCRCMap output) { StartProgressBar("Archiving Resource Files", resultInfo.bundleResults.Count); output = new BundleCRCMap(); foreach (var bundle in resultInfo.bundleResults) { if (!UpdateProgressBar(string.Format("Bundle: {0}", bundle.Key))) { EndProgressBar(); return(BuildPipelineCodes.Canceled); } var resourceFiles = new List <ResourceFile>(bundle.Value.SelectMany(x => x.resourceFiles)); var filePath = string.Format("{0}/{1}", outputFolder, bundle.Key); uint crc; Hash128 hash = CalculateInputHash(resourceFiles, compression); if (UseCache && TryLoadFromCache(hash, outputFolder, out crc)) { output[filePath] = crc; continue; } crc = BundleBuildInterface.ArchiveAndCompress(resourceFiles.ToArray(), filePath, compression); output[filePath] = crc; if (UseCache && !TrySaveToCache(hash, bundle.Key, crc, outputFolder)) { BuildLogger.LogWarning("Unable to cache ResourceFileArchiver result for bundle {0}.", bundle.Key); } } if (!EndProgressBar()) { return(BuildPipelineCodes.Canceled); } return(BuildPipelineCodes.Success); }