2025-05-07 10:50:44 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
2025-05-30 17:00:07 +08:00
|
|
|
|
using System.Threading.Tasks;
|
2025-07-02 16:28:08 +08:00
|
|
|
|
#if HotUpdate
|
2025-05-07 10:50:44 +08:00
|
|
|
|
using HybridCLR.Editor.Commands;
|
2025-07-02 16:28:08 +08:00
|
|
|
|
#endif
|
2025-06-05 17:36:04 +08:00
|
|
|
|
using Newtonsoft.Json;
|
2025-05-07 10:50:44 +08:00
|
|
|
|
using Sirenix.OdinInspector;
|
|
|
|
|
|
using Sirenix.OdinInspector.Editor;
|
|
|
|
|
|
using UnityEditor;
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
using YooAsset.Editor;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Stary.Evo.Editor
|
|
|
|
|
|
{
|
|
|
|
|
|
public class OneKeyBuildWindow : OdinEditorWindow
|
|
|
|
|
|
{
|
2025-10-24 19:08:10 +08:00
|
|
|
|
[MenuItem("Evo/Dev/(一键)打包工具",false, 3)]
|
2025-05-07 10:50:44 +08:00
|
|
|
|
static void Init()
|
|
|
|
|
|
{
|
2025-07-02 16:28:08 +08:00
|
|
|
|
#if NotUpdate
|
|
|
|
|
|
if (EditorUtility.DisplayDialog("提示", "当前为非热更模式,不支持热更打包功能,是否切换热更模式", "是", "否"))
|
|
|
|
|
|
{
|
|
|
|
|
|
ChangeHotUpdateSchema.SetHotUpdateMode(HotUpdateMode.HotUpdate);
|
|
|
|
|
|
}
|
|
|
|
|
|
#elif HotUpdate
|
2025-07-23 10:12:03 +08:00
|
|
|
|
var window = (OneKeyBuildWindow)EditorWindow.GetWindow(typeof(OneKeyBuildWindow));
|
2025-05-07 10:50:44 +08:00
|
|
|
|
window.Show();
|
2025-07-02 16:28:08 +08:00
|
|
|
|
#endif
|
2025-05-07 10:50:44 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-05-30 17:00:07 +08:00
|
|
|
|
[Title("全选"), OnValueChanged("OneKeyBuildEvent"), HideLabel]
|
|
|
|
|
|
public bool isOneKeyBuild;
|
|
|
|
|
|
|
2025-05-07 10:50:44 +08:00
|
|
|
|
[ListDrawerSettings(DraggableItems = false, ShowFoldout = false, ShowPaging = false, ShowItemCount = false,
|
2025-09-30 15:55:11 +08:00
|
|
|
|
HideRemoveButton = true,HideAddButton = true)]
|
2025-05-30 17:00:07 +08:00
|
|
|
|
public List<OneKeyBuildEntity> OneKeyBuildEntities = new List<OneKeyBuildEntity>();
|
2025-05-07 10:50:44 +08:00
|
|
|
|
|
|
|
|
|
|
protected override void Initialize()
|
|
|
|
|
|
{
|
|
|
|
|
|
base.Initialize();
|
2025-05-30 17:00:07 +08:00
|
|
|
|
OneKeyBuildEntities.Clear();
|
2025-05-07 10:50:44 +08:00
|
|
|
|
var creatDomainAll = CreatAssetWindow.GetCreatDomainAll();
|
|
|
|
|
|
foreach (var domainEntity in creatDomainAll)
|
|
|
|
|
|
{
|
2025-05-30 17:00:07 +08:00
|
|
|
|
OneKeyBuildEntities.Add(new OneKeyBuildEntity()
|
2025-05-07 10:50:44 +08:00
|
|
|
|
{
|
|
|
|
|
|
DomainName = domainEntity.DomainName
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-05-30 17:00:07 +08:00
|
|
|
|
[Button("(一键)标记选择资源", ButtonSizes.Large)]
|
|
|
|
|
|
public void OneClickMark()
|
2025-05-07 10:50:44 +08:00
|
|
|
|
{
|
2025-07-02 16:28:08 +08:00
|
|
|
|
#if HotUpdate
|
2025-08-21 16:42:16 +08:00
|
|
|
|
AutoBuildPackage.OneClickMark(OneKeyBuildEntities);
|
2025-05-07 10:50:44 +08:00
|
|
|
|
EditorUtility.DisplayDialog("提示", $"标记所有资源完成!", "确定");
|
2025-07-02 16:28:08 +08:00
|
|
|
|
#endif
|
2025-05-07 10:50:44 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-23 10:12:03 +08:00
|
|
|
|
[Button("(一键)收集shader【材质异常或资源修改】", ButtonSizes.Large)]
|
|
|
|
|
|
public void OneShaderMark()
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HotUpdate
|
2025-08-21 16:42:16 +08:00
|
|
|
|
EditorTools.ClearUnityConsole();
|
2026-03-25 14:05:21 +08:00
|
|
|
|
AutoBuildPackage.OneShaderMark(OneKeyBuildEntities,(domainName)=>
|
|
|
|
|
|
ShowNotification(new GUIContent($"收集【{domainName}】的shader【材质异常或资源修改】!"), 2f));
|
2025-07-23 10:12:03 +08:00
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-05-30 17:00:07 +08:00
|
|
|
|
[Button("(一键)获取服务器版本", ButtonSizes.Large)]
|
|
|
|
|
|
public async void OneUpdatePackageVersion()
|
2025-05-07 10:50:44 +08:00
|
|
|
|
{
|
|
|
|
|
|
//打包
|
|
|
|
|
|
EditorTools.ClearUnityConsole();
|
2025-08-21 16:42:16 +08:00
|
|
|
|
AutoBuildPackage.OneUpdatePackageVersion(OneKeyBuildEntities);
|
2025-05-30 17:00:07 +08:00
|
|
|
|
EditorUtility.DisplayDialog("提示", $"获取服务器版本完成", "确定");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Button("(一键)打包选择资源", ButtonSizes.Large)]
|
|
|
|
|
|
public void OneClickBuild()
|
|
|
|
|
|
{
|
|
|
|
|
|
//打包
|
|
|
|
|
|
EditorTools.ClearUnityConsole();
|
2025-08-21 16:42:16 +08:00
|
|
|
|
|
|
|
|
|
|
AutoBuildPackage.OneClickBuild(OneKeyBuildEntities);
|
2025-05-07 10:50:44 +08:00
|
|
|
|
|
|
|
|
|
|
EditorUtility.DisplayDialog("提示", $"开始打包资源!", "确定");
|
|
|
|
|
|
}
|
2025-05-30 17:00:07 +08:00
|
|
|
|
|
|
|
|
|
|
[Button("(一键)上传服务器版本", ButtonSizes.Large)]
|
|
|
|
|
|
public async void OneUpdatePackage()
|
|
|
|
|
|
{
|
|
|
|
|
|
//打包
|
|
|
|
|
|
EditorTools.ClearUnityConsole();
|
2025-08-21 16:42:16 +08:00
|
|
|
|
AutoBuildPackage.OneUpdatePackage(OneKeyBuildEntities);
|
2025-05-30 17:00:07 +08:00
|
|
|
|
EditorUtility.DisplayDialog("提示", $"服务器上传完成", "确定");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OneKeyBuildEvent()
|
|
|
|
|
|
{
|
|
|
|
|
|
for (int i = 0; i < OneKeyBuildEntities.Count; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
OneKeyBuildEntities[i].isRaw = isOneKeyBuild;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-05-07 10:50:44 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-05-30 17:00:07 +08:00
|
|
|
|
[Serializable]
|
|
|
|
|
|
public class OneKeyBuildEntity
|
2025-05-07 10:50:44 +08:00
|
|
|
|
{
|
|
|
|
|
|
[Title("是否打包", titleAlignment: TitleAlignments.Centered)] [HideLabel, HorizontalGroup("OneKeyBUildEntity")]
|
|
|
|
|
|
public bool isRaw;
|
|
|
|
|
|
|
|
|
|
|
|
[Title("包名", titleAlignment: TitleAlignments.Centered)]
|
|
|
|
|
|
[HideLabel, ReadOnly, HorizontalGroup("OneKeyBUildEntity")]
|
|
|
|
|
|
public string DomainName;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|