@@ -9,6 +9,8 @@ namespace GameFrameX.Editor
99 /// </summary>
1010 public static partial class MiniGameDefineSymbolHelper
1111 {
12+ private const string EnableWebGLMiniGameScriptingDefineSymbol = "ENABLE_WEBGL_MINI_GAME" ;
13+
1214 private static string [ ] [ ] GetAllMiniGameScriptingDefineSymbols ( )
1315 {
1416 return new [ ]
@@ -52,6 +54,67 @@ private static void DisableOtherMiniGameScriptingDefineSymbols(string[] currentM
5254 }
5355
5456 UnityEngine . Debug . Log ( $ "小游戏宏定义互斥清理完成,共关闭 { closedCount } 个宏定义") ;
57+ #endif
58+ }
59+
60+ private static void EnableUnifiedMiniGameScriptingDefineSymbol ( )
61+ {
62+ #if UNITY_WEBGL
63+ if ( ScriptingDefineSymbols . HasScriptingDefineSymbol ( BuildTargetGroup . WebGL , EnableWebGLMiniGameScriptingDefineSymbol ) )
64+ {
65+ return ;
66+ }
67+
68+ ScriptingDefineSymbols . AddScriptingDefineSymbol ( EnableWebGLMiniGameScriptingDefineSymbol ) ;
69+ UnityEngine . Debug . Log ( $ "小游戏统一宏定义 [{ EnableWebGLMiniGameScriptingDefineSymbol } ] 已经打开") ;
70+ #endif
71+ }
72+
73+ private static void RefreshUnifiedMiniGameScriptingDefineSymbol ( )
74+ {
75+ #if UNITY_WEBGL
76+ var hasAnyMiniGameDefine = false ;
77+ foreach ( var defineSymbols in GetAllMiniGameScriptingDefineSymbols ( ) )
78+ {
79+ if ( defineSymbols == null )
80+ {
81+ continue ;
82+ }
83+
84+ foreach ( var define in defineSymbols )
85+ {
86+ if ( ! ScriptingDefineSymbols . HasScriptingDefineSymbol ( BuildTargetGroup . WebGL , define ) )
87+ {
88+ continue ;
89+ }
90+
91+ hasAnyMiniGameDefine = true ;
92+ break ;
93+ }
94+
95+ if ( hasAnyMiniGameDefine )
96+ {
97+ break ;
98+ }
99+ }
100+
101+ var hasUnifiedMiniGameDefine = ScriptingDefineSymbols . HasScriptingDefineSymbol ( BuildTargetGroup . WebGL , EnableWebGLMiniGameScriptingDefineSymbol ) ;
102+ if ( hasAnyMiniGameDefine )
103+ {
104+ if ( ! hasUnifiedMiniGameDefine )
105+ {
106+ ScriptingDefineSymbols . AddScriptingDefineSymbol ( EnableWebGLMiniGameScriptingDefineSymbol ) ;
107+ UnityEngine . Debug . Log ( $ "小游戏统一宏定义 [{ EnableWebGLMiniGameScriptingDefineSymbol } ] 已经打开") ;
108+ }
109+
110+ return ;
111+ }
112+
113+ if ( hasUnifiedMiniGameDefine )
114+ {
115+ ScriptingDefineSymbols . RemoveScriptingDefineSymbol ( EnableWebGLMiniGameScriptingDefineSymbol ) ;
116+ UnityEngine . Debug . Log ( $ "小游戏统一宏定义 [{ EnableWebGLMiniGameScriptingDefineSymbol } ] 已经关闭") ;
117+ }
55118#endif
56119 }
57120 }
0 commit comments