TaskCopyRawFile.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.Linq;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. namespace YooAsset.Editor
  6. {
  7. [TaskAttribute("拷贝原生文件")]
  8. public class TaskCopyRawFile : IBuildTask
  9. {
  10. void IBuildTask.Run(BuildContext context)
  11. {
  12. var buildParametersContext = context.GetContextObject<BuildParametersContext>();
  13. var buildParameters = context.GetContextObject<BuildParametersContext>();
  14. var buildMapContext = context.GetContextObject<BuildMapContext>();
  15. var buildMode = buildParameters.Parameters.BuildMode;
  16. if (buildMode == EBuildMode.ForceRebuild || buildMode == EBuildMode.IncrementalBuild)
  17. {
  18. CopyRawBundle(buildMapContext, buildParametersContext);
  19. }
  20. }
  21. /// <summary>
  22. /// 拷贝原生文件
  23. /// </summary>
  24. private void CopyRawBundle(BuildMapContext buildMapContext, BuildParametersContext buildParametersContext)
  25. {
  26. string pipelineOutputDirectory = buildParametersContext.GetPipelineOutputDirectory();
  27. foreach (var bundleInfo in buildMapContext.Collection)
  28. {
  29. if (bundleInfo.IsRawFile)
  30. {
  31. string dest = $"{pipelineOutputDirectory}/{bundleInfo.BundleName}";
  32. foreach (var assetInfo in bundleInfo.AllMainAssets)
  33. {
  34. if (assetInfo.IsRawAsset)
  35. EditorTools.CopyFile(assetInfo.AssetPath, dest, true);
  36. }
  37. }
  38. }
  39. }
  40. }
  41. }