private void Export(string nodeName, string nodeId, string labelToNext, Dictionary <string, List <InternalAssetData> > groupedSources, Action <string, string, Dictionary <string, List <InternalAssetData> >, List <string> > Output, bool isRun) { var outputDict = new Dictionary <string, List <InternalAssetData> >(); outputDict["0"] = new List <InternalAssetData>(); var failedExports = new List <string>(); foreach (var groupKey in groupedSources.Keys) { var exportedAssets = new List <InternalAssetData>(); var inputSources = groupedSources[groupKey]; foreach (var source in inputSources) { if (isRun) { if (!Directory.Exists(exportFilePath)) { Directory.CreateDirectory(exportFilePath); } } var destinationSourcePath = source.importedPath; // in bundleBulider, use platform-package folder for export destination. if (destinationSourcePath.StartsWith(AssetBundleGraphSettings.BUNDLEBUILDER_CACHE_PLACE)) { var depth = AssetBundleGraphSettings.BUNDLEBUILDER_CACHE_PLACE.Split(AssetBundleGraphSettings.UNITY_FOLDER_SEPARATOR).Length + 1; var splitted = destinationSourcePath.Split(AssetBundleGraphSettings.UNITY_FOLDER_SEPARATOR); var reducedArray = new string[splitted.Length - depth]; Array.Copy(splitted, depth, reducedArray, 0, reducedArray.Length); var fromDepthToEnd = string.Join(AssetBundleGraphSettings.UNITY_FOLDER_SEPARATOR.ToString(), reducedArray); destinationSourcePath = fromDepthToEnd; } var destination = FileController.PathCombine(exportFilePath, destinationSourcePath); var parentDir = Directory.GetParent(destination).ToString(); if (isRun) { if (!Directory.Exists(parentDir)) { Directory.CreateDirectory(parentDir); } if (File.Exists(destination)) { File.Delete(destination); } if (string.IsNullOrEmpty(source.importedPath)) { failedExports.Add(source.absoluteSourcePath); continue; } File.Copy(source.importedPath, destination); } var exportedAsset = InternalAssetData.InternalAssetDataGeneratedByExporter(destination); exportedAssets.Add(exportedAsset); } outputDict["0"].AddRange(exportedAssets); } if (failedExports.Any()) { Debug.LogError(nodeName + ": Failed to export files. All files must be imported before exporting: " + string.Join(", ", failedExports.ToArray())); } Output(nodeId, labelToNext, outputDict, new List <string>()); }