Utils.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEditor;
  5. using UnityEditor.Build;
  6. namespace SoftKitty.MasterCharacterCreator
  7. {
  8. public class Utils
  9. {
  10. private static readonly string MccDefineSymbol = "MASTER_CHARACTER_CREATOR";
  11. private static bool Initialized = false;
  12. public static void SetDefineSymbolOnBuildTargetGroup(BuildTargetGroup targetGroup)
  13. {
  14. #if UNITY_2021_2_OR_NEWER
  15. var namedBuildTarget = NamedBuildTarget.FromBuildTargetGroup(targetGroup);
  16. string currData = PlayerSettings.GetScriptingDefineSymbols(namedBuildTarget);
  17. #else
  18. string currData = PlayerSettings.GetScriptingDefineSymbolsForGroup( targetGroup );
  19. #endif
  20. if (!currData.Contains(MccDefineSymbol))
  21. {
  22. if (string.IsNullOrEmpty(currData))
  23. {
  24. #if UNITY_2021_2_OR_NEWER
  25. PlayerSettings.SetScriptingDefineSymbols(namedBuildTarget, MccDefineSymbol);
  26. #else
  27. PlayerSettings.SetScriptingDefineSymbolsForGroup( targetGroup, MccDefineSymbol );
  28. #endif
  29. }
  30. else
  31. {
  32. if (!currData[currData.Length - 1].Equals(';'))
  33. {
  34. currData += ';';
  35. }
  36. currData += MccDefineSymbol;
  37. #if UNITY_2021_2_OR_NEWER
  38. PlayerSettings.SetScriptingDefineSymbols(namedBuildTarget, currData);
  39. #else
  40. PlayerSettings.SetScriptingDefineSymbolsForGroup( targetGroup, currData );
  41. #endif
  42. }
  43. }
  44. }
  45. [InitializeOnLoadMethod]
  46. public static void Init()
  47. {
  48. if (!Initialized)
  49. {
  50. SetDefineSymbolOnBuildTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
  51. Initialized = true;
  52. }
  53. }
  54. }
  55. }