Skip to content

Commit fe58ebc

Browse files
authored
Merge pull request #52 from AIO-GAME/1.x
1.x
2 parents 6ee6e5a + b906f6d commit fe58ebc

25 files changed

+419
-173
lines changed

Editor/Proxy/AssetProxyEditor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ public static async Task UploadGCloud(ASUploadGCloudConfig config, bool isTips =
5858
return;
5959
}
6060

61-
PrGCloud.Gcloud = string.IsNullOrEmpty(config.GCLOUD_PATH) ? PrGCloud.Gcloud : config.GCLOUD_PATH;
62-
PrGCloud.Gsutil = string.IsNullOrEmpty(config.GSUTIL_PATH) ? PrGCloud.Gsutil : config.GSUTIL_PATH;
61+
PrGCloud.Gcloud = string.IsNullOrEmpty(config.GCLOUD_PATH) ? "gcloud" : config.GCLOUD_PATH;
62+
PrGCloud.Gsutil = string.IsNullOrEmpty(config.GSUTIL_PATH) ? "gsutil" : config.GSUTIL_PATH;
6363
await Editor.UploadGCloud(config);
6464
}
6565

Editor/Proxy/IAssetProxyEditor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public interface IAssetProxyEditor
4848
/// </summary>
4949
/// <param name="config">构建配置</param>
5050
void BuildArt(ASBuildConfig config);
51-
51+
5252
/// <summary>
5353
/// 上传到GCloud
5454
/// 生成一份清单文件 记录当前文件夹下的所有文件的MD5值
@@ -59,7 +59,7 @@ public interface IAssetProxyEditor
5959
/// 需要本地保留一份原始清单 否则会覆盖远端最新的清单文件 导致无法对比
6060
/// </summary>
6161
Task UploadGCloud(ASUploadGCloudConfig config);
62-
62+
6363
/// <summary>
6464
/// 上传到Ftp
6565
/// </summary>

Editor/Windows/AssetCollectWindow.Data.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public enum Mode
128128
/// <summary>
129129
/// 当前界面模式
130130
/// </summary>
131-
private Mode WindowMode = Mode.Editor;
131+
public static Mode WindowMode = Mode.Editor;
132132

133133
/// <summary>
134134
/// Header中间显示信息

Editor/Windows/AssetCollectWindow.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,6 @@ protected override void OnAwake()
114114

115115
protected override void OnActivation()
116116
{
117-
AssetCollectSetting.Initialize();
118-
119117
Data = AssetCollectRoot.GetOrCreate();
120118
Data.Refresh();
121119
Selection.activeObject = Data;

Editor/Windows/Data/ASBuildConfig.GCloud.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ public class ASUploadGCloudConfig
1919
/// <summary>
2020
/// Gcloud 路径
2121
/// </summary>
22-
public string GCLOUD_PATH = "gcloud";
22+
public string GCLOUD_PATH;
2323

2424
/// <summary>
2525
/// Gsutil 路径
2626
/// </summary>
27-
public string GSUTIL_PATH = "gsutil";
27+
public string GSUTIL_PATH;
2828

2929
/// <summary>
3030
/// 是否上传Latest

Editor/Windows/Data/AssetCollectItem.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ public bool IsCollectAsset(AssetRuleData data)
198198
Debug.LogWarningFormat("Resources 目录下的资源不允许打包 !!! 已自动过滤 !!! -> {0}", data.AssetPath);
199199
return false;
200200
}
201-
201+
202202
if (RuleUseCollectCustom) // 判断是否使用自定义收集规则
203203
{
204204
if (RuleCustomCollect?.Length > 0 && // 判断自定义收集规则等
@@ -264,7 +264,6 @@ public string GetAddress(string assetPath)
264264
}
265265

266266
data.AssetPath = assetPath.Substring(0, assetPath.Length - data.Extension.Length - 1);
267-
data.AssetPath = data.AssetPath;
268267
return IsCollectAsset(data) ? GetAssetAddress(data, ASConfig.GetOrCreate().LoadPathToLower) : string.Empty;
269268
}
270269

@@ -414,7 +413,9 @@ private void CollectAsset(string[] tags, bool pathToLower)
414413
info.Address = GetAssetAddress(data, pathToLower);
415414
info.AssetPath = file;
416415
info.Extension = data.Extension;
417-
AssetDataInfos[file] = info;
416+
if (AssetDataInfos.ContainsKey(file))
417+
Debug.LogWarningFormat("[资源已存在 请检查 收集器不允许一个资源多个可寻址路径] !!! -> {0}", file);
418+
else AssetDataInfos[file] = info;
418419
}
419420
}
420421
else
@@ -425,7 +426,9 @@ private void CollectAsset(string[] tags, bool pathToLower)
425426
info.Address = GetAssetAddress(data, pathToLower);
426427
info.AssetPath = data.CollectPath;
427428
info.Extension = data.Extension;
428-
AssetDataInfos[data.CollectPath] = info;
429+
if (AssetDataInfos.ContainsKey(data.CollectPath))
430+
Debug.LogWarningFormat("[资源已存在 请检查 收集器不允许一个资源多个可寻址路径] !!! -> {0}", data.CollectPath);
431+
else AssetDataInfos[data.CollectPath] = info;
429432
}
430433
}
431434

Editor/Windows/Data/AssetCollectSetting.cs

Lines changed: 54 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,65 @@ namespace AIO.UEditor
1010
{
1111
public static class AssetCollectSetting
1212
{
13-
public static DisplayList<IAssetRuleAddress> MapAddress { get; private set; }
14-
public static DisplayList<IAssetRuleFilter> MapCollect { get; private set; }
15-
public static DisplayList<IAssetRuleFilter> MapFilter { get; private set; }
16-
public static DisplayList<IAssetRulePack> MapPacks { get; private set; }
13+
public static DisplayList<IAssetRuleAddress> MapAddress
14+
{
15+
get
16+
{
17+
if (_MapAddress is null) Initialize();
18+
return _MapAddress;
19+
}
20+
}
21+
22+
public static DisplayList<IAssetRuleFilter> MapCollect
23+
{
24+
get
25+
{
26+
if (_MapCollect is null) Initialize();
27+
return _MapCollect;
28+
}
29+
}
30+
31+
public static DisplayList<IAssetRuleFilter> MapFilter
32+
{
33+
get
34+
{
35+
if (_MapFilter is null) Initialize();
36+
return _MapFilter;
37+
}
38+
}
39+
40+
41+
public static DisplayList<IAssetRulePack> MapPacks
42+
{
43+
get
44+
{
45+
if (_MapPacks is null) Initialize();
46+
return _MapPacks;
47+
}
48+
}
49+
50+
private static DisplayList<IAssetRuleAddress> _MapAddress;
51+
private static DisplayList<IAssetRuleFilter> _MapCollect;
52+
private static DisplayList<IAssetRuleFilter> _MapFilter;
53+
private static DisplayList<IAssetRulePack> _MapPacks;
1754

18-
public static void Initialize()
55+
private static void Initialize()
1956
{
2057
var assetAddress = typeof(IAssetRuleAddress).FullName;
2158
var assetFilter = typeof(IAssetRuleFilter).FullName;
2259
var assetPack = typeof(IAssetRulePack).FullName;
2360

24-
if (MapAddress is null) MapAddress = new DisplayList<IAssetRuleAddress>();
25-
else MapAddress.Clear();
61+
if (_MapAddress is null) _MapAddress = new DisplayList<IAssetRuleAddress>();
62+
else _MapAddress.Clear();
2663

27-
if (MapCollect is null) MapCollect = new DisplayList<IAssetRuleFilter>();
28-
else MapCollect.Clear();
64+
if (_MapCollect is null) _MapCollect = new DisplayList<IAssetRuleFilter>();
65+
else _MapCollect.Clear();
2966

30-
if (MapFilter is null) MapFilter = new DisplayList<IAssetRuleFilter>();
31-
else MapFilter.Clear();
67+
if (_MapFilter is null) _MapFilter = new DisplayList<IAssetRuleFilter>();
68+
else _MapFilter.Clear();
3269

33-
if (MapPacks is null) MapPacks = new DisplayList<IAssetRulePack>();
34-
else MapPacks.Clear();
70+
if (_MapPacks is null) _MapPacks = new DisplayList<IAssetRulePack>();
71+
else _MapPacks.Clear();
3572

3673
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
3774
{
@@ -47,19 +84,19 @@ public static void Initialize()
4784
var key = type.FullName ?? type.Name;
4885
if (iAssetAddress != null && instance is IAssetRuleAddress InstanceAddress)
4986
{
50-
MapAddress.Add(key, InstanceAddress.DisplayAddressName, InstanceAddress);
87+
_MapAddress.Add(key, InstanceAddress.DisplayAddressName, InstanceAddress);
5188
}
5289

5390
if (iAssetPack != null && instance is IAssetRulePack InstancePack)
5491
{
55-
MapPacks.Add(key, InstancePack.DisplayPackName, InstancePack);
92+
_MapPacks.Add(key, InstancePack.DisplayPackName, InstancePack);
5693
}
5794

5895
if (iAssetFilter != null && instance is IAssetRuleFilter InstanceFilter)
5996
{
6097
var keyFilter = InstanceFilter.DisplayFilterName;
61-
MapCollect.Add(key, keyFilter, InstanceFilter);
62-
MapFilter.Add(key, keyFilter, InstanceFilter);
98+
_MapCollect.Add(key, keyFilter, InstanceFilter);
99+
_MapFilter.Add(key, keyFilter, InstanceFilter);
63100
}
64101
}
65102
}

Editor/Windows/Editor.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
/*|============|*|
2+
|*|Author: |*| star fire
3+
|*|Date: |*| 2024-01-22
4+
|*|E-Mail: |*| xinansky99@gmail.com
5+
|*|============|*/
6+
7+
using AIO.UEngine;
8+
using UnityEditor;
9+
using UnityEngine;
10+
11+
namespace AIO.UEditor
12+
{
13+
/// <summary>
14+
/// ASBuildConfig
15+
/// </summary>
16+
[CustomEditor(typeof(ASBuildConfig))]
17+
public class ASBuildConfigEditor : NILInspector<ASBuildConfig>
18+
{
19+
protected override void OnGUI()
20+
{
21+
using (new EditorGUILayout.HorizontalScope())
22+
{
23+
EditorGUILayout.LabelField("构建平台", GUILayout.Width(120));
24+
Target.BuildTarget = (BuildTarget)EditorGUILayout.EnumPopup(Target.BuildTarget);
25+
}
26+
27+
using (new EditorGUILayout.HorizontalScope())
28+
{
29+
EditorGUILayout.LabelField("打包管线", GUILayout.Width(120));
30+
Target.BuildPipeline = (EBuildPipeline)EditorGUILayout.EnumPopup(Target.BuildPipeline);
31+
}
32+
33+
using (new EditorGUILayout.HorizontalScope())
34+
{
35+
EditorGUILayout.LabelField("构建模式", GUILayout.Width(120));
36+
Target.BuildMode = (EBuildMode)EditorGUILayout.EnumPopup(Target.BuildMode);
37+
}
38+
39+
using (new EditorGUILayout.HorizontalScope())
40+
{
41+
EditorGUILayout.LabelField("压缩模式", GUILayout.Width(120));
42+
Target.CompressedMode = (ECompressMode)EditorGUILayout.EnumPopup(Target.CompressedMode);
43+
}
44+
45+
using (new EditorGUILayout.HorizontalScope())
46+
{
47+
EditorGUILayout.LabelField("版本号", GUILayout.Width(120));
48+
Target.BuildVersion = EditorGUILayout.TextField(Target.BuildVersion);
49+
}
50+
51+
using (new EditorGUILayout.HorizontalScope())
52+
{
53+
EditorGUILayout.LabelField("构建资源包名称", GUILayout.Width(120));
54+
Target.PackageName = EditorGUILayout.TextField(Target.PackageName);
55+
}
56+
57+
using (new EditorGUILayout.HorizontalScope())
58+
{
59+
EditorGUILayout.LabelField("加密模式", GUILayout.Width(120));
60+
Target.EncyptionClassName = EditorGUILayout.TextField(Target.EncyptionClassName);
61+
}
62+
63+
using (new EditorGUILayout.HorizontalScope())
64+
{
65+
EditorGUILayout.LabelField("首包标签集合", GUILayout.Width(120));
66+
Target.FirstPackTag = EditorGUILayout.TextField(Target.FirstPackTag);
67+
}
68+
69+
using (new EditorGUILayout.HorizontalScope())
70+
{
71+
EditorGUILayout.LabelField("构建结果输出路径", GUILayout.Width(120));
72+
Target.BuildOutputPath = EditorGUILayout.TextField(Target.BuildOutputPath);
73+
}
74+
75+
using (new EditorGUILayout.HorizontalScope())
76+
{
77+
EditorGUILayout.LabelField("验证构建结果", GUILayout.Width(120));
78+
Target.ValidateBuild = EditorGUILayout.Toggle(Target.ValidateBuild);
79+
}
80+
81+
using (new EditorGUILayout.HorizontalScope())
82+
{
83+
EditorGUILayout.LabelField("资源包合并至Latest", GUILayout.Width(120));
84+
Target.MergeToLatest = EditorGUILayout.Toggle(Target.MergeToLatest);
85+
}
86+
87+
using (new EditorGUILayout.HorizontalScope())
88+
{
89+
EditorGUILayout.LabelField("自动清理缓存数量", GUILayout.Width(120));
90+
Target.AutoCleanCacheNum = EditorGUILayout.IntSlider(Target.AutoCleanCacheNum, 3, 10);
91+
}
92+
93+
using (new EditorGUILayout.HorizontalScope())
94+
{
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+
}
111+
}
112+
}
113+
}
114+
}

Editor/Windows/Editor/ASBuildConfigEditor.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
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())
21+
{
22+
Target.EnableAddressable = EditorGUILayout.ToggleLeft("开启可寻址路径", Target.EnableAddressable);
23+
}
24+
25+
using (new EditorGUILayout.HorizontalScope())
26+
{
27+
Target.IncludeAssetGUID = EditorGUILayout.ToggleLeft("包含资源GUID", Target.IncludeAssetGUID);
28+
}
29+
30+
using (new EditorGUILayout.HorizontalScope())
31+
{
32+
Target.UniqueBundleName = EditorGUILayout.ToggleLeft("唯一资源包名", Target.UniqueBundleName);
33+
}
34+
35+
using (new EditorGUILayout.HorizontalScope())
36+
{
37+
if (GUILayout.Button("保存"))
38+
{
39+
EditorUtility.SetDirty(Target);
40+
AssetDatabase.SaveAssets();
41+
}
42+
43+
if (GUILayout.Button("打开"))
44+
{
45+
AssetCollectWindow.WindowMode = AssetCollectWindow.Mode.Editor;
46+
EditorApplication.ExecuteMenuItem("AIO/Window/Asset");
47+
}
48+
}
49+
}
50+
}
51+
}

Editor/Windows/Editor/AssetCollectRoot.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Editor/Windows/Interface/IAssetRuleFilter/RuleCollect.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ internal static bool IsCollectAssetCustom(IEnumerable<string> filterCollect, str
6969
if (filterCollect is null) return false;
7070
foreach (var collect in filterCollect)
7171
{
72-
if (collect[1] == '.' && collect.Substring(2) == extension) return true;
7372
switch (collect[0])
7473
{
7574
case '.':

0 commit comments

Comments
 (0)