From cf89858514a101dcb6a2dc3f7e46c3d8fcfb661e Mon Sep 17 00:00:00 2001 From: mzh <3213885650@qq.com> Date: Tue, 31 Mar 2026 16:11:33 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90m=E3=80=91=E5=AE=8C=E6=88=90=E5=A4=9A?= =?UTF-8?q?=E9=80=89=E6=89=93=E5=8C=85=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Editor/Build/BuildApkWindow.cs | 37 ++++++++++++++++--- Assets/00.StaryEvoTools/package.json | 2 +- 2 files changed, 33 insertions(+), 6 deletions(-) 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",