설명 없음
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.

Renderer2DAnalytics.cs 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. using System;
  2. using UnityEngine;
  3. using UnityEngine.Analytics;
  4. using UnityEngine.Rendering.Universal;
  5. using static UnityEngine.Analytics.IAnalytic;
  6. namespace UnityEditor.Rendering.Universal.Analytics
  7. {
  8. struct AnalyticsDataTypes
  9. {
  10. public const string k_LightDataString = "u2drendererlights";
  11. public const string k_Renderer2DDataString = "u2drendererdata";
  12. public const int k_MaxEventsPerHour = 1000;
  13. public const int k_MaxNumberOfElements = 1000;
  14. public const string k_VendorKey = "unity.renderpipelines.universal.editor";
  15. public const int k_Version = 1;
  16. }
  17. [AnalyticInfo(eventName: AnalyticsDataTypes.k_LightDataString, vendorKey: AnalyticsDataTypes.k_VendorKey, maxEventsPerHour: AnalyticsDataTypes.k_MaxEventsPerHour, maxNumberOfElements: AnalyticsDataTypes.k_MaxNumberOfElements)]
  18. internal class LightDataAnalytic : IAnalytic
  19. {
  20. public LightDataAnalytic(int instance_id, bool was_create_event, Light2D.LightType light_type)
  21. {
  22. m_Data = new Light2DData
  23. {
  24. instance_id = instance_id,
  25. was_create_event = was_create_event,
  26. light_type = light_type
  27. };
  28. }
  29. [Serializable]
  30. internal struct Light2DData : IAnalytic.IData
  31. {
  32. [SerializeField]
  33. public bool was_create_event;
  34. [SerializeField]
  35. public int instance_id;
  36. [SerializeField]
  37. public Light2D.LightType light_type;
  38. };
  39. public bool TryGatherData(out IAnalytic.IData data, out Exception error)
  40. {
  41. data = m_Data;
  42. error = null;
  43. return true;
  44. }
  45. Light2DData m_Data;
  46. }
  47. [AnalyticInfo(eventName: AnalyticsDataTypes.k_Renderer2DDataString, vendorKey: AnalyticsDataTypes.k_VendorKey, maxEventsPerHour: AnalyticsDataTypes.k_MaxEventsPerHour, maxNumberOfElements: AnalyticsDataTypes.k_MaxNumberOfElements)]
  48. internal class RenderAssetAnalytic : IAnalytic
  49. {
  50. public RenderAssetAnalytic(int instance_id, bool was_create_event, int blending_layers_count, int blending_modes_used)
  51. {
  52. m_Data = new RendererAssetData
  53. {
  54. instance_id = instance_id,
  55. was_create_event = was_create_event,
  56. blending_layers_count = blending_layers_count,
  57. blending_modes_used = blending_modes_used
  58. };
  59. }
  60. [Serializable]
  61. internal struct RendererAssetData : IAnalytic.IData
  62. {
  63. [SerializeField]
  64. public bool was_create_event;
  65. [SerializeField]
  66. public int instance_id;
  67. [SerializeField]
  68. public int blending_layers_count;
  69. [SerializeField]
  70. public int blending_modes_used;
  71. }
  72. public bool TryGatherData(out IAnalytic.IData data, out Exception error)
  73. {
  74. data = m_Data;
  75. error = null;
  76. return true;
  77. }
  78. RendererAssetData m_Data;
  79. }
  80. interface IAnalytics
  81. {
  82. AnalyticsResult SendData(IAnalytic analytic);
  83. }
  84. [InitializeOnLoad]
  85. internal class Renderer2DAnalytics : IAnalytics
  86. {
  87. static Renderer2DAnalytics m_Instance = new Renderer2DAnalytics();
  88. public static Renderer2DAnalytics instance
  89. {
  90. get
  91. {
  92. if (m_Instance == null)
  93. m_Instance = new Renderer2DAnalytics();
  94. return m_Instance;
  95. }
  96. }
  97. public AnalyticsResult SendData(IAnalytic analytic)
  98. {
  99. return EditorAnalytics.SendAnalytic(analytic);
  100. }
  101. }
  102. }