diff --git a/Assets/00.StaryEvo/Editor/BuildAsset/BuildAssetWindow.cs b/Assets/00.StaryEvo/Editor/BuildAsset/BuildAssetWindow.cs index 227a1c8..840fc0e 100644 --- a/Assets/00.StaryEvo/Editor/BuildAsset/BuildAssetWindow.cs +++ b/Assets/00.StaryEvo/Editor/BuildAsset/BuildAssetWindow.cs @@ -28,50 +28,7 @@ namespace Stary.Evo.Editor { private static BuildAssetWindow window; - [MenuItem("Evo/资源打包(一键)/标记所有资源")] - public static void OneClickMark() - { - //打dll - CompileDllCommand.CompileDllActiveBuildTarget(); - //拷贝dll - MarkAdressable.AddHotfixAddressableDllAll(); - //标记全部资源 - MarkAdressable.AddMarkAll(); - EditorUtility.DisplayDialog("提示", $"标记所有资源完成!", "确定"); - } - - [MenuItem("Evo/资源打包(一键)/打包所有资源")] - public static void OneClickBuild() - { - //打包 - EditorTools.ClearUnityConsole(); - - var DomainAll = CreatAssetWindow.GetCreatDomainAll(); - foreach (var domainEntity in DomainAll) - { - var mp = domainEntity.domainPath.Substring(domainEntity.domainPath.IndexOf("Assets")); - mp = mp.Replace('\\', '/'); - - BuildAssetDataSetting buildAssetDataSetting = - AssetDatabase.LoadAssetAtPath( - $"{mp}/Conf/BuildAssetDataSetting.asset"); - if (buildAssetDataSetting != null) - { - buildAssetDataSetting.environmentType = EnvironmentType.Release; - buildAssetDataSetting.SetEnvironmentType(); - buildAssetDataSetting.viewer = new BuiltinBuildPipelineViewer(buildAssetDataSetting); - buildAssetDataSetting.viewer.clearBuildCacheToggle= true; - buildAssetDataSetting.viewer.SetBuildCacheToggle(); - EditorApplication.delayCall += buildAssetDataSetting.viewer.ExecuteBuild; - } - else - { - Debug.LogError("BuildAssetDataSetting 不存在:" + domainEntity.DomainName); - } - } - EditorUtility.DisplayDialog("提示", $"打包所有资源完成!", "确定"); - } - + [MenuItem("Evo/资源打包工具")] static void ShowWindows() diff --git a/Assets/00.StaryEvo/Editor/BuildAsset/BuiltinBuildPipelineViewer.cs b/Assets/00.StaryEvo/Editor/BuildAsset/BuiltinBuildPipelineViewer.cs index 966d9b1..30db9af 100644 --- a/Assets/00.StaryEvo/Editor/BuildAsset/BuiltinBuildPipelineViewer.cs +++ b/Assets/00.StaryEvo/Editor/BuildAsset/BuiltinBuildPipelineViewer.cs @@ -1,5 +1,6 @@ using System; using UnityEditor; +using UnityEngine; using YooAsset; using YooAsset.Editor; @@ -44,7 +45,8 @@ namespace Stary.Evo.Editor var buildResult = pipeline.Run(buildParameters, true); if (buildResult.Success) { - EditorUtility.RevealInFinder(buildResult.OutputPackageDirectory); + Debug.Log($"Build Success! 【{buildResult.OutputPackageDirectory}】"); + //EditorUtility.RevealInFinder(buildResult.OutputPackageDirectory); base.ExecuteBuild(); } diff --git a/Assets/00.StaryEvo/Editor/BuildAsset/CreatAssetWindow.cs b/Assets/00.StaryEvo/Editor/BuildAsset/CreatAssetWindow.cs index 0fc0042..a63542f 100644 --- a/Assets/00.StaryEvo/Editor/BuildAsset/CreatAssetWindow.cs +++ b/Assets/00.StaryEvo/Editor/BuildAsset/CreatAssetWindow.cs @@ -2,13 +2,10 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Threading.Tasks; -using EditorFramework; using HybridCLR.Editor; using HybridCLR.Editor.Settings; using Sirenix.OdinInspector; using Sirenix.OdinInspector.Editor; -using Sirenix.Utilities; using Stary.Evo.InformationSave; using UnityEditor; using UnityEditorInternal; diff --git a/Assets/00.StaryEvo/Editor/BuildAsset/OneKeyBuildWindow.cs b/Assets/00.StaryEvo/Editor/BuildAsset/OneKeyBuildWindow.cs new file mode 100644 index 0000000..f32bd2b --- /dev/null +++ b/Assets/00.StaryEvo/Editor/BuildAsset/OneKeyBuildWindow.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using HybridCLR.Editor; +using HybridCLR.Editor.Commands; +using HybridCLR.Editor.Settings; +using Sirenix.OdinInspector; +using Sirenix.OdinInspector.Editor; +using Stary.Evo.InformationSave; +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; +using YooAsset.Editor; + +namespace Stary.Evo.Editor +{ + public class OneKeyBuildWindow : OdinEditorWindow + { + [MenuItem("Evo/(一键)打包工具")] + static void Init() + { + var window = (OneKeyBuildWindow)EditorWindow.GetWindow(typeof(OneKeyBuildWindow)); + window.Show(); + } + + [ListDrawerSettings(DraggableItems = false, ShowFoldout = false, ShowPaging = false, ShowItemCount = false, + HideRemoveButton = true)] + public List OneKeyBUildEntities = new List(); + + protected override void Initialize() + { + base.Initialize(); + var creatDomainAll = CreatAssetWindow.GetCreatDomainAll(); + foreach (var domainEntity in creatDomainAll) + { + OneKeyBUildEntities.Add(new OneKeyBUildEntity() + { + DomainName = domainEntity.DomainName + }); + } + } + + [Button("(一键)标记选择资源",ButtonSizes.Large)] + public void OneClickMark() + { + //打dll + CompileDllCommand.CompileDllActiveBuildTarget(); + //拷贝dll + MarkAdressable.AddHotfixAddressableDllAll(OneKeyBUildEntities); + //标记全部资源 + MarkAdressable.AddMarkAll(OneKeyBUildEntities); + EditorUtility.DisplayDialog("提示", $"标记所有资源完成!", "确定"); + } + + [Button("(一键)打包选择资源",ButtonSizes.Large)] + public void OneClickBuild() + { + //打包 + EditorTools.ClearUnityConsole(); + + foreach (var oneKeyBUildEntity in OneKeyBUildEntities) + { + if (oneKeyBUildEntity.isRaw) + { + + + BuildAssetDataSetting buildAssetDataSetting = + AssetDatabase.LoadAssetAtPath( + $"Assets/Domain/{oneKeyBUildEntity.DomainName}/Conf/BuildAssetDataSetting.asset"); + if (buildAssetDataSetting != null) + { + buildAssetDataSetting.environmentType = EnvironmentType.Release; + buildAssetDataSetting.SetEnvironmentType(); + buildAssetDataSetting.viewer = new BuiltinBuildPipelineViewer(buildAssetDataSetting); + buildAssetDataSetting.viewer.clearBuildCacheToggle = true; + buildAssetDataSetting.viewer.SetBuildCacheToggle(); + EditorApplication.delayCall += buildAssetDataSetting.viewer.ExecuteBuild; + } + else + { + Debug.LogError("BuildAssetDataSetting 不存在:" + oneKeyBUildEntity.DomainName); + } + } + } + + EditorUtility.DisplayDialog("提示", $"开始打包资源!", "确定"); + } + } + + public struct OneKeyBUildEntity + { + [Title("是否打包", titleAlignment: TitleAlignments.Centered)] [HideLabel, HorizontalGroup("OneKeyBUildEntity")] + public bool isRaw; + + [Title("包名", titleAlignment: TitleAlignments.Centered)] + [HideLabel, ReadOnly, HorizontalGroup("OneKeyBUildEntity")] + public string DomainName; + } +} \ No newline at end of file diff --git a/Assets/00.StaryEvo/Editor/BuildAsset/OneKeyBuildWindow.cs.meta b/Assets/00.StaryEvo/Editor/BuildAsset/OneKeyBuildWindow.cs.meta new file mode 100644 index 0000000..d84d92d --- /dev/null +++ b/Assets/00.StaryEvo/Editor/BuildAsset/OneKeyBuildWindow.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 26f920eb9cb048179fdc641cfd92ed93 +timeCreated: 1746583992 \ No newline at end of file diff --git a/Assets/00.StaryEvo/Editor/BuildAsset/RawfileBuildpipelineViewer.cs b/Assets/00.StaryEvo/Editor/BuildAsset/RawfileBuildpipelineViewer.cs index b97cdcf..21f6085 100644 --- a/Assets/00.StaryEvo/Editor/BuildAsset/RawfileBuildpipelineViewer.cs +++ b/Assets/00.StaryEvo/Editor/BuildAsset/RawfileBuildpipelineViewer.cs @@ -1,5 +1,6 @@ using System; using UnityEditor; +using UnityEngine; using YooAsset; using YooAsset.Editor; @@ -43,7 +44,8 @@ namespace Stary.Evo.Editor var buildResult = pipeline.Run(buildParameters, true); if (buildResult.Success) { - EditorUtility.RevealInFinder(buildResult.OutputPackageDirectory); + Debug.Log($"Build Success! 【{buildResult.OutputPackageDirectory}】"); + // EditorUtility.RevealInFinder(buildResult.OutputPackageDirectory); base.ExecuteBuild(); } } diff --git a/Assets/00.StaryEvo/Editor/BuildAsset/ScriptableBuildPipelineViewer.cs b/Assets/00.StaryEvo/Editor/BuildAsset/ScriptableBuildPipelineViewer.cs index 9115d8f..d008e90 100644 --- a/Assets/00.StaryEvo/Editor/BuildAsset/ScriptableBuildPipelineViewer.cs +++ b/Assets/00.StaryEvo/Editor/BuildAsset/ScriptableBuildPipelineViewer.cs @@ -1,5 +1,6 @@ using System; using UnityEditor; +using UnityEngine; using YooAsset; using YooAsset.Editor; @@ -46,7 +47,8 @@ namespace Stary.Evo.Editor var buildResult = pipeline.Run(buildParameters, true); if (buildResult.Success) { - EditorUtility.RevealInFinder(buildResult.OutputPackageDirectory); + Debug.Log($"Build Success! 【{buildResult.OutputPackageDirectory}】"); + // EditorUtility.RevealInFinder(buildResult.OutputPackageDirectory); base.ExecuteBuild(); } } diff --git a/Assets/00.StaryEvo/Editor/MarkAdressable/MarkAdressable.cs b/Assets/00.StaryEvo/Editor/MarkAdressable/MarkAdressable.cs index 33941b2..c732df4 100644 --- a/Assets/00.StaryEvo/Editor/MarkAdressable/MarkAdressable.cs +++ b/Assets/00.StaryEvo/Editor/MarkAdressable/MarkAdressable.cs @@ -58,14 +58,17 @@ namespace Stary.Evo.Editor //EditorUtility.DisplayDialog("自动标记", "自动Hotfix成功", "确定"); } - public static void AddHotfixAddressableDllAll() + public static void AddHotfixAddressableDllAll(List oneKeyBUildEntities) { var DomainAll = CreatAssetWindow.GetCreatDomainAll(); - foreach (var domain in DomainAll) + foreach (var oneKeyBUildEntity in oneKeyBUildEntities) { - CopyDllHotUpdateAssembly(domain.DomainName, $"{DomainRoot}/{domain.DomainName}/AddressableRes"); - CopyDllStrippedAOTDllOutputRootDir($"{DomainRoot}/{domain.DomainName}/AddressableRes"); + if (oneKeyBUildEntity.isRaw) + { + CopyDllHotUpdateAssembly(oneKeyBUildEntity.DomainName, $"{DomainRoot}/{oneKeyBUildEntity.DomainName}/AddressableRes"); + CopyDllStrippedAOTDllOutputRootDir($"{DomainRoot}/{oneKeyBUildEntity.DomainName}/AddressableRes"); + } } @@ -122,27 +125,29 @@ namespace Stary.Evo.Editor } } - public static void AddMarkAll() + public static void AddMarkAll(List oneKeyBUildEntities) { YooAsset.Editor.AssetBundleCollectorSettingData.ClearAll(); - var DomainAll = CreatAssetWindow.GetCreatDomainAll(); - - foreach (var domain in DomainAll) + foreach (var oneKeyBUildEntity in oneKeyBUildEntities) { - string configPath = - $"Assets/Domain/{domain.DomainName}/Conf/HotfixMainResDomain.asset"; - HotfixMainResDomain hotfixMainResDomain = - AssetDatabase.LoadAssetAtPath(configPath); - packageName = hotfixMainResDomain.hotfixMainResDomainEntity.domain; - Mark(); - if (! domain.DomainName.Equals("Main")) - CreateRes(packageName, - $"{DomainRoot}/{domain.DomainName}/AddressableRes", - $"{DomainRoot}/{domain.DomainName}/HotUpdate"); - else - CreateRes(packageName, - $"{DomainRoot}/{domain.DomainName}/AddressableRes", - $"{MainDomainRoot}/Script/Runtime/HotUpdate"); + if (oneKeyBUildEntity.isRaw) + { + string configPath = + $"Assets/Domain/{oneKeyBUildEntity.DomainName}/Conf/HotfixMainResDomain.asset"; + HotfixMainResDomain hotfixMainResDomain = + AssetDatabase.LoadAssetAtPath(configPath); + packageName = hotfixMainResDomain.hotfixMainResDomainEntity.domain; + Mark(); + if (!oneKeyBUildEntity.DomainName.Equals("Main")) + CreateRes(packageName, + $"{DomainRoot}/{oneKeyBUildEntity.DomainName}/AddressableRes", + $"{DomainRoot}/{oneKeyBUildEntity.DomainName}/HotUpdate"); + else + CreateRes(packageName, + $"{DomainRoot}/{oneKeyBUildEntity.DomainName}/AddressableRes", + $"{MainDomainRoot}/Script/Runtime/HotUpdate"); + + } } } diff --git a/Assets/00.StaryEvo/package.json b/Assets/00.StaryEvo/package.json index 9e1d91e..09ec27b 100644 --- a/Assets/00.StaryEvo/package.json +++ b/Assets/00.StaryEvo/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.main", - "version": "1.0.29", + "version": "1.0.30", "displayName": "00.StaryEvo", "description": "This is an Framework package", "unity": "2021.3",