This commit is contained in:
shihuilong
2026-03-31 16:42:33 +08:00
2 changed files with 33 additions and 6 deletions

View File

@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using Cysharp.Threading.Tasks;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using Sirenix.OdinInspector.Editor; using Sirenix.OdinInspector.Editor;
using UnityEditor; using UnityEditor;
@@ -46,7 +47,7 @@ namespace Stary.Evo.Editor
[TitleGroup("Domain子包")] [TitleGroup("Domain子包")]
[LabelText("选择包体")] [LabelText("选择包体")]
[ShowIf(nameof(allowMutiSelection))] [ShowIf(nameof(allowMutiSelection))]
[ValueDropdown(nameof(GetAvailablePackageNames))] [ValueDropdown(nameof(GetAvailablePackageNames), IsUniqueList = true)]
public string[] selectionOfPackages; public string[] selectionOfPackages;
[TitleGroup("Domain子包")] [TitleGroup("Domain子包")]
@@ -204,7 +205,7 @@ namespace Stary.Evo.Editor
/// 开始打包流程 /// 开始打包流程
/// </summary> /// </summary>
/// <param name="isWatermark">是否为水印包</param> /// <param name="isWatermark">是否为水印包</param>
private void StartBuild(PLayerMode playMode) private async void StartBuild(PLayerMode playMode)
{ {
if (_isBuilding) if (_isBuilding)
{ {
@@ -219,8 +220,34 @@ namespace Stary.Evo.Editor
try 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) catch (Exception e)
{ {
@@ -239,7 +266,7 @@ namespace Stary.Evo.Editor
/// <summary> /// <summary>
/// Android打包核心逻辑 /// Android打包核心逻辑
/// </summary> /// </summary>
private void BuildAndroid(PLayerMode pLayerMode) private async UniTask BuildAndroid(PLayerMode pLayerMode)
{ {
buildStatus = "加载配置文件..."; buildStatus = "加载配置文件...";
Repaint(); Repaint();

View File

@@ -1,6 +1,6 @@
{ {
"name": "com.staryevo.tools", "name": "com.staryevo.tools",
"version": "1.3.31", "version": "1.3.32",
"displayName": "00.StaryEvo.Tools", "displayName": "00.StaryEvo.Tools",
"description": "This is an Framework package(后台服务器版本端口9527)", "description": "This is an Framework package(后台服务器版本端口9527)",
"unity": "2021.3", "unity": "2021.3",