BuildAB.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // --------------------------
  2. // 作者:烟雨迷离半世殇
  3. // 邮箱:1778139321@qq.com
  4. // 日期:2022年7月27日, 星期三
  5. // --------------------------
  6. using UnityEditor;
  7. using UnityEngine;
  8. using System.IO;
  9. using UnityEditor.SceneManagement;
  10. using YooAsset.Editor;
  11. namespace ET
  12. {
  13. /// <summary>
  14. /// 编辑器下一键Build AB
  15. /// </summary>
  16. /*public static class BuildABTool
  17. {
  18. [MonKey.Command("Build AB", "ProjectS编辑器下Build AB工具", Category = "Build")]
  19. public static void BuildAB_Auto()
  20. {
  21. int cachedVersion = EditorPrefs.GetInt("YooAssetABVersion");
  22. cachedVersion++;
  23. EditorPrefs.SetInt("YooAssetABVersion", cachedVersion);
  24. BuildABWithVersion(cachedVersion);
  25. }
  26. public static void BuildABWithVersion(int buildVersion = 0)
  27. {
  28. Debug.Log($"开始构建AB,平台为:{EditorUserBuildSettings.activeBuildTarget} Version为 {buildVersion}");
  29. EditorSceneManager.OpenScene(GlobalDefine.InitScenePath);
  30. // 构建参数
  31. string defaultOutputRoot = AssetBundleBuilderHelper.GetDefaultOutputRoot();
  32. BuildParameters buildParameters = new BuildParameters();
  33. buildParameters.OutputRoot = defaultOutputRoot;
  34. buildParameters.BuildTarget = EditorUserBuildSettings.activeBuildTarget;
  35. buildParameters.BuildPipeline = EBuildPipeline.BuiltinBuildPipeline;
  36. buildParameters.BuildMode = EBuildMode.IncrementalBuild;
  37. buildParameters.BuildVersion = buildVersion;
  38. buildParameters.BuildinTags = "buildin";
  39. buildParameters.VerifyBuildingResult = true;
  40. buildParameters.EnableAddressable = true;
  41. buildParameters.CopyBuildinTagFiles = true;
  42. buildParameters.EncryptionServices = new GameEncryption();
  43. buildParameters.CompressOption = ECompressOption.LZ4;
  44. // 执行构建
  45. AssetBundleBuilder builder = new AssetBundleBuilder();
  46. bool succeed = builder.Run(buildParameters);
  47. // 需要对构建出的AB包进行后处理
  48. // 1. 更改文件夹名为App version名
  49. // 2. 将文件夹移动到同父级目录的CDN文件夹下
  50. string oriABPath =
  51. $"{buildParameters.OutputRoot}/{EditorUserBuildSettings.activeBuildTarget}/{buildVersion}";
  52. string finalABDir =
  53. $"{buildParameters.OutputRoot}/CDN/{EditorUserBuildSettings.activeBuildTarget}";
  54. string finalABPath =
  55. $"{buildParameters.OutputRoot}/CDN/{EditorUserBuildSettings.activeBuildTarget}/{Init.Instance.Version}";
  56. if (Directory.Exists(finalABDir))
  57. {
  58. Directory.Delete(finalABDir, true);
  59. }
  60. Directory.CreateDirectory(finalABDir);
  61. Directory.Move(oriABPath, finalABPath);
  62. Debug.Log($"构建AB结果:{succeed},将{oriABPath}移动到{finalABPath}");
  63. }
  64. }*/
  65. }