// -------------------------- // 作者:烟雨迷离半世殇 // 邮箱:1778139321@qq.com // 日期:2022年7月27日, 星期三 // -------------------------- using UnityEditor; using UnityEngine; using System.IO; using UnityEditor.SceneManagement; using YooAsset.Editor; namespace ET { /// <summary> /// 编辑器下一键Build AB /// </summary> /*public static class BuildABTool { [MonKey.Command("Build AB", "ProjectS编辑器下Build AB工具", Category = "Build")] public static void BuildAB_Auto() { int cachedVersion = EditorPrefs.GetInt("YooAssetABVersion"); cachedVersion++; EditorPrefs.SetInt("YooAssetABVersion", cachedVersion); BuildABWithVersion(cachedVersion); } public static void BuildABWithVersion(int buildVersion = 0) { Debug.Log($"开始构建AB,平台为:{EditorUserBuildSettings.activeBuildTarget} Version为 {buildVersion}"); EditorSceneManager.OpenScene(GlobalDefine.InitScenePath); // 构建参数 string defaultOutputRoot = AssetBundleBuilderHelper.GetDefaultOutputRoot(); BuildParameters buildParameters = new BuildParameters(); buildParameters.OutputRoot = defaultOutputRoot; buildParameters.BuildTarget = EditorUserBuildSettings.activeBuildTarget; buildParameters.BuildPipeline = EBuildPipeline.BuiltinBuildPipeline; buildParameters.BuildMode = EBuildMode.IncrementalBuild; buildParameters.BuildVersion = buildVersion; buildParameters.BuildinTags = "buildin"; buildParameters.VerifyBuildingResult = true; buildParameters.EnableAddressable = true; buildParameters.CopyBuildinTagFiles = true; buildParameters.EncryptionServices = new GameEncryption(); buildParameters.CompressOption = ECompressOption.LZ4; // 执行构建 AssetBundleBuilder builder = new AssetBundleBuilder(); bool succeed = builder.Run(buildParameters); // 需要对构建出的AB包进行后处理 // 1. 更改文件夹名为App version名 // 2. 将文件夹移动到同父级目录的CDN文件夹下 string oriABPath = $"{buildParameters.OutputRoot}/{EditorUserBuildSettings.activeBuildTarget}/{buildVersion}"; string finalABDir = $"{buildParameters.OutputRoot}/CDN/{EditorUserBuildSettings.activeBuildTarget}"; string finalABPath = $"{buildParameters.OutputRoot}/CDN/{EditorUserBuildSettings.activeBuildTarget}/{Init.Instance.Version}"; if (Directory.Exists(finalABDir)) { Directory.Delete(finalABDir, true); } Directory.CreateDirectory(finalABDir); Directory.Move(oriABPath, finalABPath); Debug.Log($"构建AB结果:{succeed},将{oriABPath}移动到{finalABPath}"); } }*/ }