Skip to content

Commit 084953c

Browse files
committed
🪄 优化
- 资源系统配置面板 - 新增首包资源构建资源包规则选项
1 parent 0a0bc55 commit 084953c

File tree

87 files changed

+4883
-359
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+4883
-359
lines changed

Editor/AIO.Asset.Editor.asmdef

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"references": [
55
"AIO.Asset.Runtime",
66
"AIO.Core.Runtime",
7-
"AIO.Core.Editor"
7+
"AIO.Core.Editor",
8+
"YooAsset.Editor"
89
],
910
"includePlatforms": [
1011
"Editor"

Editor/Windows/AssetCollectWindow.Data.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -512,12 +512,12 @@ private void ViewRectUpdate()
512512
DoEditorDrawRect = new Rect(5, DrawHeaderHeight, 0, CurrentHeight - DrawHeaderHeight);
513513
DoConfigDrawRect = new Rect(5, DrawHeaderHeight, 0, CurrentHeight - DrawHeaderHeight);
514514

515-
ViewSetting = new ViewRect(150, DoEditorDrawRect.height)
515+
ViewSetting = new ViewRect(250, DoEditorDrawRect.height)
516516
{
517517
IsShow = true,
518518
IsAllowHorizontal = false,
519519
DragHorizontalWidth = 5,
520-
width = 150
520+
width = 250
521521
};
522522
ViewConfig = new ViewRect(550, DoEditorDrawRect.height)
523523
{

Editor/Windows/Data/AssetCollectRoot.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,17 @@ public static AssetCollectRoot GetOrCreate()
191191

192192
[InspectorName("包含资源GUID")] public bool IncludeAssetGUID;
193193

194+
[InspectorName("首包打包规则")] public PackRule SequenceRecordPackRule = PackRule.PackGroup;
195+
196+
public enum PackRule
197+
{
198+
[InspectorName("文件路径")] PackSeparately,
199+
[InspectorName("父类文件夹路径")] PackDirectory,
200+
[InspectorName("收集器下顶级文件夹路径")] PackTopDirectory,
201+
[InspectorName("收集器路径")] PackCollector,
202+
[InspectorName("分组名称")] PackGroup,
203+
}
204+
194205
/// <summary>
195206
/// 资源收集配置
196207
/// </summary>

Editor/Windows/Editor/ASBuildConfigEditor.cs

Lines changed: 65 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -18,96 +18,108 @@ public class ASBuildConfigEditor : NILInspector<ASBuildConfig>
1818
{
1919
protected override void OnGUI()
2020
{
21-
using (new EditorGUILayout.HorizontalScope())
21+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
2222
{
23-
EditorGUILayout.LabelField("构建平台", GUILayout.Width(120));
24-
Target.BuildTarget = (BuildTarget)EditorGUILayout.EnumPopup(Target.BuildTarget);
23+
EditorGUILayout.LabelField(string.Empty, GUILayout.Width(125));
24+
if (GUILayout.Button("保存", GEStyle.toolbarbuttonRight))
25+
{
26+
EditorUtility.SetDirty(Target);
27+
AssetDatabase.SaveAssets();
28+
}
29+
30+
if (GUILayout.Button("打开", GEStyle.toolbarbuttonRight))
31+
{
32+
AssetCollectWindow.WindowMode = AssetCollectWindow.Mode.Build;
33+
EditorApplication.ExecuteMenuItem("AIO/Window/Asset");
34+
}
35+
36+
if (GUILayout.Button("构建", GEStyle.toolbarbutton))
37+
{
38+
AssetProxyEditor.BuildArt(Target);
39+
}
2540
}
2641

27-
using (new EditorGUILayout.HorizontalScope())
42+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
2843
{
29-
EditorGUILayout.LabelField("打包管线", GUILayout.Width(120));
30-
Target.BuildPipeline = (EBuildPipeline)EditorGUILayout.EnumPopup(Target.BuildPipeline);
44+
EditorGUILayout.LabelField("构建平台", GUILayout.Width(125));
45+
Target.BuildTarget =
46+
(BuildTarget)EditorGUILayout.EnumPopup(Target.BuildTarget, GEStyle.TEToolbarDropDown);
3147
}
3248

33-
using (new EditorGUILayout.HorizontalScope())
49+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
3450
{
35-
EditorGUILayout.LabelField("构建模式", GUILayout.Width(120));
36-
Target.BuildMode = (EBuildMode)EditorGUILayout.EnumPopup(Target.BuildMode);
51+
EditorGUILayout.LabelField("打包管线", GUILayout.Width(125));
52+
Target.BuildPipeline =
53+
(EBuildPipeline)EditorGUILayout.EnumPopup(Target.BuildPipeline, GEStyle.TEToolbarDropDown);
3754
}
3855

39-
using (new EditorGUILayout.HorizontalScope())
56+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
4057
{
41-
EditorGUILayout.LabelField("压缩模式", GUILayout.Width(120));
42-
Target.CompressedMode = (ECompressMode)EditorGUILayout.EnumPopup(Target.CompressedMode);
58+
EditorGUILayout.LabelField("构建模式", GUILayout.Width(125));
59+
Target.BuildMode = (EBuildMode)EditorGUILayout.EnumPopup(Target.BuildMode, GEStyle.TEToolbarDropDown);
4360
}
4461

45-
using (new EditorGUILayout.HorizontalScope())
62+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
4663
{
47-
EditorGUILayout.LabelField("版本号", GUILayout.Width(120));
48-
Target.BuildVersion = EditorGUILayout.TextField(Target.BuildVersion);
64+
EditorGUILayout.LabelField("压缩模式", GUILayout.Width(125));
65+
Target.CompressedMode =
66+
(ECompressMode)EditorGUILayout.EnumPopup(Target.CompressedMode, GEStyle.TEToolbarDropDown);
4967
}
5068

51-
using (new EditorGUILayout.HorizontalScope())
69+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
5270
{
53-
EditorGUILayout.LabelField("构建资源包名称", GUILayout.Width(120));
54-
Target.PackageName = EditorGUILayout.TextField(Target.PackageName);
71+
EditorGUILayout.LabelField("版本号", GUILayout.Width(125));
72+
using (new EditorGUILayout.HorizontalScope(GEStyle.toolbarbutton))
73+
Target.BuildVersion = EditorGUILayout.TextField(Target.BuildVersion);
5574
}
5675

57-
using (new EditorGUILayout.HorizontalScope())
76+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
5877
{
59-
EditorGUILayout.LabelField("加密模式", GUILayout.Width(120));
60-
Target.EncyptionClassName = EditorGUILayout.TextField(Target.EncyptionClassName);
78+
EditorGUILayout.LabelField("构建资源包名称", GUILayout.Width(125));
79+
using (new EditorGUILayout.HorizontalScope(GEStyle.toolbarbutton))
80+
Target.PackageName = EditorGUILayout.TextField(Target.PackageName);
6181
}
6282

63-
using (new EditorGUILayout.HorizontalScope())
83+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
6484
{
65-
EditorGUILayout.LabelField("首包标签集合", GUILayout.Width(120));
66-
Target.FirstPackTag = EditorGUILayout.TextField(Target.FirstPackTag);
85+
EditorGUILayout.LabelField("加密模式", GUILayout.Width(125));
86+
using (new EditorGUILayout.HorizontalScope(GEStyle.toolbarbutton))
87+
Target.EncyptionClassName = EditorGUILayout.TextField(Target.EncyptionClassName);
6788
}
6889

69-
using (new EditorGUILayout.HorizontalScope())
90+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
7091
{
71-
EditorGUILayout.LabelField("构建结果输出路径", GUILayout.Width(120));
72-
Target.BuildOutputPath = EditorGUILayout.TextField(Target.BuildOutputPath);
92+
EditorGUILayout.LabelField("首包标签集合", GUILayout.Width(125));
93+
using (new EditorGUILayout.HorizontalScope(GEStyle.toolbarbutton))
94+
Target.FirstPackTag = EditorGUILayout.TextField(Target.FirstPackTag);
7395
}
7496

75-
using (new EditorGUILayout.HorizontalScope())
97+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
7698
{
77-
EditorGUILayout.LabelField("验证构建结果", GUILayout.Width(120));
78-
Target.ValidateBuild = EditorGUILayout.Toggle(Target.ValidateBuild);
99+
EditorGUILayout.LabelField("构建结果输出路径", GUILayout.Width(125));
100+
using (new EditorGUILayout.HorizontalScope(GEStyle.toolbarbutton))
101+
Target.BuildOutputPath = EditorGUILayout.TextField(Target.BuildOutputPath);
79102
}
80103

81-
using (new EditorGUILayout.HorizontalScope())
104+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
82105
{
83-
EditorGUILayout.LabelField("资源包合并至Latest", GUILayout.Width(120));
84-
Target.MergeToLatest = EditorGUILayout.Toggle(Target.MergeToLatest);
106+
EditorGUILayout.LabelField("验证构建结果", GUILayout.Width(125));
107+
if (GUILayout.Button(Target.ValidateBuild ? "已启用" : "已禁用", GEStyle.toolbarbutton))
108+
Target.ValidateBuild = !Target.ValidateBuild;
85109
}
86110

87-
using (new EditorGUILayout.HorizontalScope())
111+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
88112
{
89-
EditorGUILayout.LabelField("自动清理缓存数量", GUILayout.Width(120));
90-
Target.AutoCleanCacheNum = EditorGUILayout.IntSlider(Target.AutoCleanCacheNum, 3, 10);
113+
EditorGUILayout.LabelField("资源包合并至Latest", GUILayout.Width(125));
114+
if (GUILayout.Button(Target.MergeToLatest ? "已启用" : "已禁用", GEStyle.toolbarbutton))
115+
Target.MergeToLatest = !Target.MergeToLatest;
91116
}
92117

93-
using (new EditorGUILayout.HorizontalScope())
118+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
94119
{
95-
if (GUILayout.Button("保存"))
96-
{
97-
EditorUtility.SetDirty(Target);
98-
AssetDatabase.SaveAssets();
99-
}
100-
101-
if (GUILayout.Button("打开"))
102-
{
103-
AssetCollectWindow.WindowMode = AssetCollectWindow.Mode.Build;
104-
EditorApplication.ExecuteMenuItem("AIO/Window/Asset");
105-
}
106-
107-
if (GUILayout.Button("构建"))
108-
{
109-
AssetProxyEditor.BuildArt(Target);
110-
}
120+
EditorGUILayout.LabelField("自动清理缓存数量", GUILayout.Width(125));
121+
using (new EditorGUILayout.HorizontalScope(GEStyle.toolbarbutton))
122+
Target.AutoCleanCacheNum = EditorGUILayout.IntSlider(Target.AutoCleanCacheNum, 3, 10);
111123
}
112124
}
113125
}

Editor/Windows/Editor/AssetCollectRoot.cs

Lines changed: 0 additions & 51 deletions
This file was deleted.
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/*|============|*|
2+
|*|Author: |*| USER
3+
|*|Date: |*| 2024-01-22
4+
|*|E-Mail: |*| xinansky99@gmail.com
5+
|*|============|*/
6+
7+
using UnityEditor;
8+
using UnityEngine;
9+
10+
namespace AIO.UEditor
11+
{
12+
/// <summary>
13+
/// AssetCollectRoot
14+
/// </summary>
15+
[CustomEditor(typeof(AssetCollectRoot))]
16+
public class AssetCollectRootEditor : NILInspector<AssetCollectRoot>
17+
{
18+
protected override void OnGUI()
19+
{
20+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
21+
{
22+
EditorGUILayout.LabelField(string.Empty, GTOption.Width(100));
23+
if (GUILayout.Button("保存", GEStyle.toolbarbuttonRight))
24+
{
25+
GUI.FocusControl(null);
26+
Target.Save();
27+
#if UNITY_2021_1_OR_NEWER
28+
AssetDatabase.SaveAssetIfDirty(Target);
29+
#else
30+
AssetDatabase.SaveAssets();
31+
#endif
32+
if (EditorUtility.DisplayDialog("保存", "保存成功", "确定"))
33+
{
34+
AssetDatabase.Refresh();
35+
}
36+
}
37+
38+
if (GUILayout.Button("打开", GEStyle.toolbarbutton))
39+
{
40+
AssetCollectWindow.WindowMode = AssetCollectWindow.Mode.Editor;
41+
EditorApplication.ExecuteMenuItem("AIO/Window/Asset");
42+
}
43+
}
44+
45+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
46+
{
47+
EditorGUILayout.LabelField("开启可寻址路径", GTOption.Width(100));
48+
if (GUILayout.Button(Target.EnableAddressable ? "已启用" : "已禁用", GEStyle.toolbarbutton))
49+
Target.EnableAddressable = !Target.EnableAddressable;
50+
}
51+
52+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
53+
{
54+
EditorGUILayout.LabelField("包含资源GUID", GTOption.Width(100));
55+
if (GUILayout.Button(Target.IncludeAssetGUID ? "已启用" : "已禁用", GEStyle.toolbarbutton))
56+
Target.IncludeAssetGUID = !Target.IncludeAssetGUID;
57+
}
58+
59+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
60+
{
61+
EditorGUILayout.LabelField("唯一资源包名", GTOption.Width(100));
62+
if (GUILayout.Button(Target.UniqueBundleName ? "已启用" : "已禁用", GEStyle.toolbarbutton))
63+
Target.UniqueBundleName = !Target.UniqueBundleName;
64+
}
65+
66+
using (new EditorGUILayout.HorizontalScope(GEStyle.Toolbar))
67+
{
68+
EditorGUILayout.LabelField("首包资源规则", GTOption.Width(100));
69+
Target.SequenceRecordPackRule =
70+
GELayout.Popup(Target.SequenceRecordPackRule, GEStyle.TEToolbarDropDown);
71+
}
72+
}
73+
}
74+
}

Editor/Windows/Interface/IAssetRulePack/RulePack.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using System;
88
using System.IO;
99
using UnityEditor;
10+
using YooAsset.Editor;
1011
using PackRuleResult = AIO.UEditor.AssetRulePackResult;
1112
using PackRuleData = AIO.UEditor.AssetRuleData;
1213

0 commit comments

Comments
 (0)