113 lines
3.7 KiB
C#
113 lines
3.7 KiB
C#
|
using System;
|
||
|
using UnityEngine;
|
||
|
using UnityEngine.Analytics;
|
||
|
using UnityEngine.Rendering.Universal;
|
||
|
using static UnityEngine.Analytics.IAnalytic;
|
||
|
|
||
|
namespace UnityEditor.Rendering.Universal.Analytics
|
||
|
{
|
||
|
struct AnalyticsDataTypes
|
||
|
{
|
||
|
public const string k_LightDataString = "u2drendererlights";
|
||
|
public const string k_Renderer2DDataString = "u2drendererdata";
|
||
|
public const int k_MaxEventsPerHour = 1000;
|
||
|
public const int k_MaxNumberOfElements = 1000;
|
||
|
public const string k_VendorKey = "unity.renderpipelines.universal.editor";
|
||
|
public const int k_Version = 1;
|
||
|
}
|
||
|
|
||
|
[AnalyticInfo(eventName: AnalyticsDataTypes.k_LightDataString, vendorKey: AnalyticsDataTypes.k_VendorKey, maxEventsPerHour: AnalyticsDataTypes.k_MaxEventsPerHour, maxNumberOfElements: AnalyticsDataTypes.k_MaxNumberOfElements)]
|
||
|
internal class LightDataAnalytic : IAnalytic
|
||
|
{
|
||
|
public LightDataAnalytic(int instance_id, bool was_create_event, Light2D.LightType light_type)
|
||
|
{
|
||
|
m_Data = new Light2DData
|
||
|
{
|
||
|
instance_id = instance_id,
|
||
|
was_create_event = was_create_event,
|
||
|
light_type = light_type
|
||
|
};
|
||
|
}
|
||
|
|
||
|
[Serializable]
|
||
|
internal struct Light2DData : IAnalytic.IData
|
||
|
{
|
||
|
[SerializeField]
|
||
|
public bool was_create_event;
|
||
|
[SerializeField]
|
||
|
public int instance_id;
|
||
|
[SerializeField]
|
||
|
public Light2D.LightType light_type;
|
||
|
};
|
||
|
public bool TryGatherData(out IAnalytic.IData data, out Exception error)
|
||
|
{
|
||
|
data = m_Data;
|
||
|
error = null;
|
||
|
return true;
|
||
|
}
|
||
|
Light2DData m_Data;
|
||
|
}
|
||
|
|
||
|
[AnalyticInfo(eventName: AnalyticsDataTypes.k_Renderer2DDataString, vendorKey: AnalyticsDataTypes.k_VendorKey, maxEventsPerHour: AnalyticsDataTypes.k_MaxEventsPerHour, maxNumberOfElements: AnalyticsDataTypes.k_MaxNumberOfElements)]
|
||
|
internal class RenderAssetAnalytic : IAnalytic
|
||
|
{
|
||
|
public RenderAssetAnalytic(int instance_id, bool was_create_event, int blending_layers_count, int blending_modes_used)
|
||
|
{
|
||
|
m_Data = new RendererAssetData
|
||
|
{
|
||
|
instance_id = instance_id,
|
||
|
was_create_event = was_create_event,
|
||
|
blending_layers_count = blending_layers_count,
|
||
|
blending_modes_used = blending_modes_used
|
||
|
};
|
||
|
}
|
||
|
|
||
|
[Serializable]
|
||
|
internal struct RendererAssetData : IAnalytic.IData
|
||
|
{
|
||
|
[SerializeField]
|
||
|
public bool was_create_event;
|
||
|
[SerializeField]
|
||
|
public int instance_id;
|
||
|
[SerializeField]
|
||
|
public int blending_layers_count;
|
||
|
[SerializeField]
|
||
|
public int blending_modes_used;
|
||
|
}
|
||
|
public bool TryGatherData(out IAnalytic.IData data, out Exception error)
|
||
|
{
|
||
|
data = m_Data;
|
||
|
error = null;
|
||
|
return true;
|
||
|
}
|
||
|
RendererAssetData m_Data;
|
||
|
|
||
|
}
|
||
|
|
||
|
interface IAnalytics
|
||
|
{
|
||
|
AnalyticsResult SendData(IAnalytic analytic);
|
||
|
}
|
||
|
|
||
|
[InitializeOnLoad]
|
||
|
internal class Renderer2DAnalytics : IAnalytics
|
||
|
{
|
||
|
static Renderer2DAnalytics m_Instance = new Renderer2DAnalytics();
|
||
|
public static Renderer2DAnalytics instance
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
if (m_Instance == null)
|
||
|
m_Instance = new Renderer2DAnalytics();
|
||
|
|
||
|
return m_Instance;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public AnalyticsResult SendData(IAnalytic analytic)
|
||
|
{
|
||
|
return EditorAnalytics.SendAnalytic(analytic);
|
||
|
}
|
||
|
}
|
||
|
}
|