diff --git a/Assets/00.StaryEvoTools/Editor/Build/BuildApkWindow.cs b/Assets/00.StaryEvoTools/Editor/Build/BuildApkWindow.cs index 8e42f7a..99cccbf 100644 --- a/Assets/00.StaryEvoTools/Editor/Build/BuildApkWindow.cs +++ b/Assets/00.StaryEvoTools/Editor/Build/BuildApkWindow.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using Cysharp.Threading.Tasks; using Sirenix.OdinInspector; using Sirenix.OdinInspector.Editor; using UnityEditor; @@ -46,7 +47,7 @@ namespace Stary.Evo.Editor [TitleGroup("Domain子包")] [LabelText("选择包体")] [ShowIf(nameof(allowMutiSelection))] - [ValueDropdown(nameof(GetAvailablePackageNames))] + [ValueDropdown(nameof(GetAvailablePackageNames), IsUniqueList = true)] public string[] selectionOfPackages; [TitleGroup("Domain子包")] @@ -204,7 +205,7 @@ namespace Stary.Evo.Editor /// 开始打包流程 /// /// 是否为水印包 - private void StartBuild(PLayerMode playMode) + private async void StartBuild(PLayerMode playMode) { if (_isBuilding) { @@ -219,8 +220,34 @@ namespace Stary.Evo.Editor try { - // 执行打包 - BuildAndroid(playMode); + // 多选打包 + if (allowMutiSelection) + { + // 已选包体列表排空 + if (selectionOfPackages.Length == 0) + { + throw new( "选择了多选打包,但是没有选择任何Domain子包"); + } + + var current = 0; + while (current < selectionOfPackages.Length) + { + // 获取包体ID + var packageID = selectionOfPackages[current]; + Debug.Log($"正在打包:{packageID}"); + // 获取包体配置 + selectedPackageInfo = HotfixMainResDomain.Get.buildConfig.Get(packageID).info; + // 打包 + await BuildAndroid(playMode); + + current++; + } + } + // 单选打包 + else + { + _ = BuildAndroid(playMode); + } } catch (Exception e) { @@ -239,7 +266,7 @@ namespace Stary.Evo.Editor /// /// Android打包核心逻辑 /// - private void BuildAndroid(PLayerMode pLayerMode) + private async UniTask BuildAndroid(PLayerMode pLayerMode) { buildStatus = "加载配置文件..."; Repaint(); diff --git a/Assets/00.StaryEvoTools/package.json b/Assets/00.StaryEvoTools/package.json index aeaf629..cb11533 100644 --- a/Assets/00.StaryEvoTools/package.json +++ b/Assets/00.StaryEvoTools/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.tools", - "version": "1.3.31", + "version": "1.3.32", "displayName": "00.StaryEvo.Tools", "description": "This is an Framework package(后台服务器版本,端口9527)", "unity": "2021.3",