Skip to content

Commit 87f5198

Browse files
authored
Update SymbolDefineHelper for legacy Unity versions.
1 parent d60e160 commit 87f5198

File tree

1 file changed

+38
-6
lines changed

1 file changed

+38
-6
lines changed

example/unity/DemoApp/Assets/FlutterUnityIntegration/Editor/SymbolDefineHelper.cs

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
using System.Collections.Generic;
22
using UnityEditor;
3-
using UnityEditor.Build;
43
using UnityEngine;
4+
using UnityEditor.Build;
55

66
namespace FlutterUnityIntegration.Editor
77
{
8-
public static class SymbolDefineHelper
8+
public static class SymbolDefineHelper
99
{
1010
public static void SetScriptingDefine(string symbol, bool enable)
1111
{
1212
bool changesMade = false;
13-
13+
1414
// Iterate over all named build targets available
15+
#if UNITY_2021_2_OR_NEWER
1516
foreach (NamedBuildTarget namedTarget in GetAllNamedBuildTargets())
1617
{
1718
string defines = PlayerSettings.GetScriptingDefineSymbols(namedTarget);
1819
var defineList = new List<string>(defines.Split(';'));
1920

2021
bool contains = defineList.Contains(symbol);
21-
2222
if (enable && !contains)
2323
{
2424
defineList.Add(symbol);
@@ -32,9 +32,31 @@ public static void SetScriptingDefine(string symbol, bool enable)
3232
Debug.Log($"Removed '{symbol}' from {namedTarget.TargetName}");
3333
}
3434

35-
string updatedDefines = string.Join(";", defineList);
36-
PlayerSettings.SetScriptingDefineSymbols(namedTarget, updatedDefines);
35+
PlayerSettings.SetScriptingDefineSymbols(namedTarget, string.Join(";", defineList));
36+
}
37+
#else
38+
foreach (BuildTargetGroup group in GetAllBuildTargetGroups())
39+
{
40+
string defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(group);
41+
var defineList = new List<string>(defines.Split(';'));
42+
43+
bool contains = defineList.Contains(symbol);
44+
if (enable && !contains)
45+
{
46+
defineList.Add(symbol);
47+
changesMade = true;
48+
Debug.Log($"Added '{symbol}' to {group}");
49+
}
50+
else if (!enable && contains)
51+
{
52+
defineList.Remove(symbol);
53+
changesMade = true;
54+
Debug.Log($"Removed '{symbol}' from {group}");
55+
}
56+
57+
PlayerSettings.SetScriptingDefineSymbolsForGroup(group, string.Join(";", defineList));
3758
}
59+
#endif
3860

3961
if (changesMade)
4062
{
@@ -47,12 +69,22 @@ public static void SetScriptingDefine(string symbol, bool enable)
4769
}
4870
}
4971

72+
#if UNITY_2021_2_OR_NEWER
5073
private static IEnumerable<NamedBuildTarget> GetAllNamedBuildTargets()
5174
{
5275
yield return NamedBuildTarget.FromBuildTargetGroup(BuildTargetGroup.Standalone);
5376
yield return NamedBuildTarget.FromBuildTargetGroup(BuildTargetGroup.Android);
5477
yield return NamedBuildTarget.FromBuildTargetGroup(BuildTargetGroup.iOS);
5578
yield return NamedBuildTarget.FromBuildTargetGroup(BuildTargetGroup.WebGL);
5679
}
80+
#else
81+
private static IEnumerable<BuildTargetGroup> GetAllBuildTargetGroups()
82+
{
83+
yield return BuildTargetGroup.Standalone;
84+
yield return BuildTargetGroup.Android;
85+
yield return BuildTargetGroup.iOS;
86+
yield return BuildTargetGroup.WebGL;
87+
}
88+
#endif
5789
}
5890
}

0 commit comments

Comments
 (0)