No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Analytics.cs 2.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System;
  2. using PhotoshopFile;
  3. using UnityEngine;
  4. using UnityEngine.Analytics;
  5. namespace UnityEditor.U2D.PSD
  6. {
  7. [Serializable]
  8. internal struct PSDApplyEvent
  9. #if USE_NEW_EDITOR_ANALYTICS
  10. : IAnalytic.IData
  11. #endif
  12. {
  13. public const string name = "psdImporterApply";
  14. public int instance_id;
  15. public int texture_type;
  16. public int sprite_mode;
  17. public bool mosaic_layer;
  18. public bool import_hidden_layer;
  19. public bool character_mode;
  20. public bool generate_go_hierarchy;
  21. public bool reslice_from_layer;
  22. public bool is_character_rigged;
  23. public SpriteAlignment character_alignment;
  24. public bool is_psd;
  25. public PsdColorMode color_mode;
  26. }
  27. #if USE_NEW_EDITOR_ANALYTICS
  28. [AnalyticInfo(eventName: PSDApplyEvent.name,
  29. vendorKey: Analytics.vendorKey,
  30. version: Analytics.version,
  31. maxEventsPerHour: Analytics.maxEventsPerHour,
  32. maxNumberOfElements: Analytics.maxNumberOfElements)]
  33. internal class PSDApplyEventAnalytic : IAnalytic
  34. {
  35. PSDApplyEvent m_EvtData;
  36. public PSDApplyEventAnalytic(PSDApplyEvent evtData)
  37. {
  38. m_EvtData = evtData;
  39. }
  40. public bool TryGatherData(out IAnalytic.IData data, out Exception error)
  41. {
  42. data = m_EvtData;
  43. error = null;
  44. return true;
  45. }
  46. }
  47. #endif
  48. internal interface IAnalytics
  49. {
  50. AnalyticsResult SendApplyEvent(PSDApplyEvent evt);
  51. }
  52. internal static class AnalyticFactory
  53. {
  54. static IAnalytics s_Analytics;
  55. public static IAnalytics analytics
  56. {
  57. get => s_Analytics ??= new Analytics();
  58. set => s_Analytics = value;
  59. }
  60. }
  61. [InitializeOnLoad]
  62. internal class Analytics : IAnalytics
  63. {
  64. public const int maxEventsPerHour = 100;
  65. public const int maxNumberOfElements = 1000;
  66. public const string vendorKey = "unity.2d.psdimporter";
  67. public const int version = 1;
  68. static Analytics()
  69. {
  70. #if !USE_NEW_EDITOR_ANALYTICS
  71. EditorAnalytics.RegisterEventWithLimit(PSDApplyEvent.name, maxEventsPerHour, maxNumberOfElements, vendorKey, version);
  72. #endif
  73. }
  74. public AnalyticsResult SendApplyEvent(PSDApplyEvent evt)
  75. {
  76. #if USE_NEW_EDITOR_ANALYTICS
  77. return EditorAnalytics.SendAnalytic(new PSDApplyEventAnalytic(evt));
  78. #else
  79. return EditorAnalytics.SendEventWithLimit(PSDApplyEvent.name, evt, version);
  80. #endif
  81. }
  82. }
  83. }