AssetBundleSimulateBuilder.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using UnityEditor;
  2. using UnityEngine;
  3. namespace YooAsset.Editor
  4. {
  5. public static class AssetBundleSimulateBuilder
  6. {
  7. /// <summary>
  8. /// 模拟构建
  9. /// </summary>
  10. public static PackageInvokeBuildResult SimulateBuild(PackageInvokeBuildParam buildParam)
  11. {
  12. string packageName = buildParam.PackageName;
  13. string buildPipelineName = buildParam.BuildPipelineName;
  14. if (buildPipelineName == "EditorSimulateBuildPipeline")
  15. {
  16. var buildParameters = new EditorSimulateBuildParameters();
  17. buildParameters.BuildOutputRoot = AssetBundleBuilderHelper.GetDefaultBuildOutputRoot();
  18. buildParameters.BuildinFileRoot = AssetBundleBuilderHelper.GetStreamingAssetsRoot();
  19. buildParameters.BuildPipeline = EBuildPipeline.EditorSimulateBuildPipeline.ToString();
  20. buildParameters.BuildBundleType = (int)EBuildBundleType.VirtualBundle;
  21. buildParameters.BuildTarget = EditorUserBuildSettings.activeBuildTarget;
  22. buildParameters.PackageName = packageName;
  23. buildParameters.PackageVersion = "Simulate";
  24. buildParameters.FileNameStyle = EFileNameStyle.HashName;
  25. buildParameters.BuildinFileCopyOption = EBuildinFileCopyOption.None;
  26. buildParameters.BuildinFileCopyParams = string.Empty;
  27. buildParameters.UseAssetDependencyDB = true;
  28. var pipeline = new EditorSimulateBuildPipeline();
  29. BuildResult buildResult = pipeline.Run(buildParameters, false);
  30. if (buildResult.Success)
  31. {
  32. var reulst = new PackageInvokeBuildResult();
  33. reulst.PackageRootDirectory = buildResult.OutputPackageDirectory;
  34. return reulst;
  35. }
  36. else
  37. {
  38. Debug.LogError(buildResult.ErrorInfo);
  39. throw new System.Exception($"{nameof(EditorSimulateBuildPipeline)} build failed !");
  40. }
  41. }
  42. else
  43. {
  44. throw new System.NotImplementedException(buildPipelineName);
  45. }
  46. }
  47. }
  48. }