12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #if SERVICES_SDK_CORE_ENABLED
-
- using System;
- using System.Reflection;
- using Unity.Services.Core.Editor;
- using UnityEditor.Analytics;
-
- namespace UnityEditor.Purchasing
- {
- internal class PurchasingServiceEnabler : EditorGameServiceFlagEnabler
- {
- public event Action OnServiceEnabled;
- public event Action OnServiceDisabled;
-
- const string k_ServiceFlagName = "purchasing";
- const string k_LegacyEnabledSettingName = "Purchasing";
-
- protected override string FlagName => k_ServiceFlagName;
-
- protected override void EnableLocalSettings()
- {
- SetPurchasingEnableSetting(true);
- AnalyticsSettings.enabled = true;
-
- OnServiceEnabled?.Invoke();
- }
-
- static void SetPurchasingEnableSetting(bool value)
- {
- PurchasingSettings.enabled = value;
- SetLegacyEnabledSetting(value);
- }
-
- static void SetLegacyEnabledSetting(bool value)
- {
- var playerSettingsType = Type.GetType("UnityEditor.PlayerSettings,UnityEditor.dll");
- if (playerSettingsType != null)
- {
- var setCloudServiceEnabledMethod = playerSettingsType.GetMethod("SetCloudServiceEnabled", BindingFlags.Static | BindingFlags.NonPublic);
- if (setCloudServiceEnabledMethod != null)
- {
- setCloudServiceEnabledMethod.Invoke(null, new object[] { k_LegacyEnabledSettingName, value });
- }
- }
- }
-
- protected override void DisableLocalSettings()
- {
- SetPurchasingEnableSetting(false);
-
- OnServiceDisabled?.Invoke();
- }
-
- public override bool IsEnabled()
- {
- return GetLegacyEnabledSetting();
- }
-
- static bool GetLegacyEnabledSetting()
- {
- var isEnabled = false;
-
- var playerSettingsType = Type.GetType("UnityEditor.PlayerSettings,UnityEditor.dll");
- if (playerSettingsType != null)
- {
- var getCloudServiceEnabledMethod = playerSettingsType.GetMethod("GetCloudServiceEnabled", BindingFlags.Static | BindingFlags.NonPublic);
- if (getCloudServiceEnabledMethod != null)
- {
- var enabledStateResult = getCloudServiceEnabledMethod.Invoke(null, new object[] { k_LegacyEnabledSettingName });
- isEnabled = Convert.ToBoolean(enabledStateResult);
- }
- }
-
- return isEnabled;
- }
- }
- }
-
- #endif
|