mirror of
https://udrimavric.com/MAVRIC/Stratasys-450mc-VR.git
synced 2025-01-24 16:24:51 -05:00
73 lines
2.4 KiB
C#
73 lines
2.4 KiB
C#
using UnityEngine.Analytics;
|
|
#if UNITY_EDITOR
|
|
using UnityEditor;
|
|
#endif
|
|
#if DEBUG_XRC_EDITOR_ANALYTICS
|
|
using UnityEngine;
|
|
#endif
|
|
|
|
namespace UnityEngine.XR.Content.Interaction.Analytics
|
|
{
|
|
/// <summary>
|
|
/// Base class for <c>XRContent</c> editor events.
|
|
/// </summary>
|
|
abstract class EditorEvent
|
|
{
|
|
protected const int k_DefaultMaxEventsPerHour = 1000;
|
|
protected const int k_DefaultMaxElementCount = 1000;
|
|
|
|
/// <summary>
|
|
/// The event name determines which database table it goes into in the CDP backend.
|
|
/// All events which we want grouped into a table must share the same event name.
|
|
/// </summary>
|
|
readonly string m_EventName;
|
|
|
|
readonly int m_MaxEventsPerHour;
|
|
readonly int m_MaxElementCount;
|
|
|
|
internal EditorEvent(string eventName, int maxPerHour = k_DefaultMaxEventsPerHour, int maxElementCount = k_DefaultMaxElementCount)
|
|
{
|
|
m_EventName = eventName;
|
|
m_MaxEventsPerHour = maxPerHour;
|
|
m_MaxElementCount = maxElementCount;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Call this method in the child classes to send an event.
|
|
/// </summary>
|
|
/// <param name="parameter">The parameter object within the event.</param>
|
|
/// <returns>Returns whenever the event was successfully sent.</returns>
|
|
protected bool Send(object parameter)
|
|
{
|
|
#if ENABLE_CLOUD_SERVICES_ANALYTICS
|
|
// Analytics events will always refuse to send if analytics are disabled or the editor is for sure quitting
|
|
if (XrcAnalytics.disabled || XrcAnalytics.quitting)
|
|
return false;
|
|
|
|
#if UNITY_EDITOR
|
|
var result = EditorAnalytics.SendEventWithLimit(m_EventName, parameter);
|
|
#else
|
|
var result = AnalyticsResult.AnalyticsDisabled;
|
|
#endif
|
|
|
|
#if DEBUG_XRC_EDITOR_ANALYTICS
|
|
Debug.Log($"Event {m_EventName} : {parameter} sent with status {result}");
|
|
#endif
|
|
|
|
return result == AnalyticsResult.Ok;
|
|
#else // ENABLE_CLOUD_SERVICES_ANALYTICS
|
|
return false;
|
|
#endif
|
|
}
|
|
|
|
internal bool Register()
|
|
{
|
|
#if UNITY_EDITOR && ENABLE_CLOUD_SERVICES_ANALYTICS
|
|
return EditorAnalytics.RegisterEventWithLimit(m_EventName, m_MaxEventsPerHour, m_MaxElementCount, XrcAnalytics.k_VendorKey) == AnalyticsResult.Ok;
|
|
#else
|
|
return false;
|
|
#endif
|
|
}
|
|
}
|
|
}
|