Files
plugin-library/Assets/00.StaryEvoTools/Editor/BuildAsset/OneKeyBuildWindow.cs

109 lines
3.7 KiB
C#
Raw Normal View History

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-05-07 10:50:44 +08:00
using HybridCLR.Editor.Commands;
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()
{
2026-04-18 01:00:51 +08:00
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();
2026-04-18 01:00:51 +08:00
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-08-21 16:42:16 +08:00
AutoBuildPackage.OneClickMark(OneKeyBuildEntities);
2025-05-07 10:50:44 +08:00
EditorUtility.DisplayDialog("提示", $"标记所有资源完成!", "确定");
}
2025-07-23 10:12:03 +08:00
[Button("(一键)收集shader【材质异常或资源修改】", ButtonSizes.Large)]
public void OneShaderMark()
{
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
}
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;
}
}