Skip to content

Commit f556e49

Browse files
committed
refactor: 优化小游戏宏定义互斥清理逻辑
将 AllMiniGameScriptingDefineSymbols 静态数组改为 GetAllMiniGameScriptingDefineSymbols 方法 添加空数组检查和跳过逻辑,避免空引用异常 优化宏定义检查逻辑,减少不必要的 HasScriptingDefineSymbol 调用 添加关闭计数和完成日志,便于调试和监控
1 parent e83b90e commit f556e49

1 file changed

Lines changed: 26 additions & 12 deletions

File tree

Editor/MiniGame/MiniGameDefineSymbolHelper.cs

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,49 @@ namespace GameFrameX.Editor
99
/// </summary>
1010
public static partial class MiniGameDefineSymbolHelper
1111
{
12-
private static readonly string[][] AllMiniGameScriptingDefineSymbols =
12+
private static string[][] GetAllMiniGameScriptingDefineSymbols()
1313
{
14-
EnableWeChatMiniGameScriptingDefineSymbol,
15-
EnableDouYinMiniGameScriptingDefineSymbol,
16-
EnableKuaiShouMiniGameScriptingDefineSymbol,
17-
EnableBaiduMiniGameScriptingDefineSymbol,
18-
EnableAlipayMiniGameScriptingDefineSymbol,
19-
EnableTapTapMiniGameScriptingDefineSymbol,
20-
};
14+
return new[]
15+
{
16+
EnableWeChatMiniGameScriptingDefineSymbol,
17+
EnableDouYinMiniGameScriptingDefineSymbol,
18+
EnableKuaiShouMiniGameScriptingDefineSymbol,
19+
EnableBaiduMiniGameScriptingDefineSymbol,
20+
EnableAlipayMiniGameScriptingDefineSymbol,
21+
EnableTapTapMiniGameScriptingDefineSymbol,
22+
};
23+
}
2124

2225
private static void DisableOtherMiniGameScriptingDefineSymbols(string[] currentMiniGameScriptingDefineSymbols)
2326
{
2427
#if UNITY_WEBGL
25-
foreach (var defineSymbols in AllMiniGameScriptingDefineSymbols)
28+
var closedCount = 0;
29+
foreach (var defineSymbols in GetAllMiniGameScriptingDefineSymbols())
2630
{
31+
if (defineSymbols == null)
32+
{
33+
continue;
34+
}
35+
2736
if (object.ReferenceEquals(defineSymbols, currentMiniGameScriptingDefineSymbols))
2837
{
2938
continue;
3039
}
3140

3241
foreach (var define in defineSymbols)
3342
{
34-
if (ScriptingDefineSymbols.HasScriptingDefineSymbol(BuildTargetGroup.WebGL, define))
43+
if (!ScriptingDefineSymbols.HasScriptingDefineSymbol(BuildTargetGroup.WebGL, define))
3544
{
36-
ScriptingDefineSymbols.RemoveScriptingDefineSymbol(define);
37-
UnityEngine.Debug.Log($"小游戏宏定义 [{define}] 已经关闭");
45+
continue;
3846
}
47+
48+
ScriptingDefineSymbols.RemoveScriptingDefineSymbol(define);
49+
closedCount++;
50+
UnityEngine.Debug.Log($"小游戏宏定义 [{define}] 已经关闭");
3951
}
4052
}
53+
54+
UnityEngine.Debug.Log($"小游戏宏定义互斥清理完成,共关闭 {closedCount} 个宏定义");
4155
#endif
4256
}
4357
}

0 commit comments

Comments
 (0)