【m】框架大更新

This commit is contained in:
2025-10-31 11:18:23 +08:00
parent ae6e7c804b
commit 8e1d52ddbf
1883 changed files with 213934 additions and 640 deletions

View File

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