NewPlayerHelper.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using Unity.Services.Core.Device.Internal;
  3. using UnityEngine;
  4. namespace Unity.Services.Analytics
  5. {
  6. class InternalNewPlayerHelper
  7. {
  8. internal IInstallationId InstallId { get; }
  9. const string k_UnityAnalyticsInstallationIdKey = "UnityAnalyticsInstallationId";
  10. internal InternalNewPlayerHelper(IInstallationId installId)
  11. {
  12. InstallId = installId ?? throw new ArgumentNullException("Did not get IInstallationId provider from Unity Services Core.");
  13. }
  14. internal bool IsNewPlayer()
  15. {
  16. var coreIdentifier = InstallId.GetOrCreateIdentifier();
  17. var analyticsIdentifier = ReadAnalyticsIdentifier();
  18. if (String.IsNullOrEmpty(analyticsIdentifier) || analyticsIdentifier != coreIdentifier)
  19. {
  20. WriteAnalyticsIdentifierToFile(coreIdentifier);
  21. return true;
  22. }
  23. return false;
  24. }
  25. internal string ReadAnalyticsIdentifier()
  26. {
  27. return PlayerPrefs.GetString(k_UnityAnalyticsInstallationIdKey);
  28. }
  29. internal void WriteAnalyticsIdentifierToFile(string identifier)
  30. {
  31. PlayerPrefs.SetString(k_UnityAnalyticsInstallationIdKey, identifier);
  32. PlayerPrefs.Save();
  33. }
  34. }
  35. }