190 lines
6.5 KiB
C#
190 lines
6.5 KiB
C#
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
using UnityEngine.UI;
|
||
|
|
||
|
#if OVR_SAMPLES_ENABLE_FIREBASE
|
||
|
using Firebase.Analytics;
|
||
|
#endif
|
||
|
|
||
|
public class AnalyticsUI : MonoBehaviour
|
||
|
{
|
||
|
#if OVR_SAMPLES_ENABLE_FIREBASE
|
||
|
const int target = DebugUIBuilder.DEBUG_PANE_LEFT;
|
||
|
|
||
|
bool analyticsCollectionEnabled = true;
|
||
|
RectTransform textFieldSessionTimeoutDuration;
|
||
|
RectTransform textFieldUserId;
|
||
|
|
||
|
RectTransform textFieldName;
|
||
|
RectTransform textFieldProperty;
|
||
|
|
||
|
RectTransform textFieldEventName;
|
||
|
|
||
|
List<(RectTransform, RectTransform)> intParams = new List<(RectTransform, RectTransform)>();//, FltParms, StrParams;
|
||
|
List<(RectTransform, RectTransform)> fltParams = new List<(RectTransform, RectTransform)>();//, FltParms, StrParams;
|
||
|
List<(RectTransform, RectTransform)> strParams = new List<(RectTransform, RectTransform)>();//, FltParms, StrParams;
|
||
|
|
||
|
// Start is called before the first frame update
|
||
|
void Start()
|
||
|
{
|
||
|
DebugUIBuilder ui = DebugUIBuilder.instance;
|
||
|
ui.AddButton("ResetAnalyticsData", ResetAnalyticsData, target);
|
||
|
ui.AddButton("SetAnalyticsCollectionEnabled", SetAnalyticsCollectionEnabled, target);
|
||
|
ui.AddToggle("CollectionEnabled", delegate (Toggle t) { analyticsCollectionEnabled = t.enabled; },
|
||
|
analyticsCollectionEnabled, target);
|
||
|
|
||
|
//ui.AddButton("SetDefaultEventParameters", SetDefaultEventParameters, target);
|
||
|
|
||
|
ui.AddButton("SetSessionTimeoutDuration", SetSessionTimeoutDuration, target);
|
||
|
textFieldSessionTimeoutDuration = ui.AddTextField("500000", target);
|
||
|
|
||
|
ui.AddButton("SetUserId", SetUserId, target);
|
||
|
textFieldUserId = ui.AddTextField("UserId", target);
|
||
|
|
||
|
ui.AddButton("SetUserProperty", SetUserProperty, target);
|
||
|
textFieldName = ui.AddTextField("Name", target);
|
||
|
textFieldProperty = ui.AddTextField("Nroperty", target);
|
||
|
|
||
|
// log event UI
|
||
|
ui.AddButton("LogEvent", LogEvent, 3);
|
||
|
textFieldEventName = ui.AddTextField("EventName", 3);
|
||
|
ui.AddButton("AddInt", AddInt, 3);
|
||
|
ui.AddButton("AddFlt", AddFlt, 3);
|
||
|
ui.AddButton("AddStr", AddStr, 3);
|
||
|
ui.AddButton("Clear", Clear, 3);
|
||
|
|
||
|
ui.Show();
|
||
|
}
|
||
|
|
||
|
void Clear()
|
||
|
{
|
||
|
DebugUIBuilder ui = DebugUIBuilder.instance;
|
||
|
var field = typeof(DebugUIBuilder).GetField("insertedElements", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
|
||
|
var relayout = typeof(DebugUIBuilder).GetMethod("Relayout", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
|
||
|
List<RectTransform> elements = ((List<RectTransform>[])field.GetValue(ui))[3];
|
||
|
foreach ((RectTransform a, RectTransform b) in intParams)
|
||
|
{
|
||
|
elements.Remove(a);
|
||
|
elements.Remove(b);
|
||
|
a.SetParent(null);
|
||
|
b.SetParent(null);
|
||
|
}
|
||
|
foreach ((RectTransform a, RectTransform b) in fltParams)
|
||
|
{
|
||
|
elements.Remove(a);
|
||
|
elements.Remove(b);
|
||
|
a.SetParent(null);
|
||
|
b.SetParent(null);
|
||
|
}
|
||
|
foreach ((RectTransform a, RectTransform b) in strParams)
|
||
|
{
|
||
|
elements.Remove(a);
|
||
|
elements.Remove(b);
|
||
|
a.SetParent(null);
|
||
|
b.SetParent(null);
|
||
|
}
|
||
|
relayout.Invoke(ui, new object[] { });
|
||
|
}
|
||
|
|
||
|
void AddInt()
|
||
|
{
|
||
|
DebugUIBuilder ui = DebugUIBuilder.instance;
|
||
|
var name = ui.AddTextField("INT_PARAM", 3);
|
||
|
var value = ui.AddTextField("0", 3);
|
||
|
intParams.Add((name, value));
|
||
|
}
|
||
|
|
||
|
void AddFlt()
|
||
|
{
|
||
|
DebugUIBuilder ui = DebugUIBuilder.instance;
|
||
|
var name = ui.AddTextField("FLT_PARAM", 3);
|
||
|
var value = ui.AddTextField("0.0", 3);
|
||
|
intParams.Add((name, value));
|
||
|
}
|
||
|
|
||
|
void AddStr()
|
||
|
{
|
||
|
DebugUIBuilder ui = DebugUIBuilder.instance;
|
||
|
var name = ui.AddTextField("STR_PARAM", 3);
|
||
|
var value = ui.AddTextField("None", 3);
|
||
|
intParams.Add((name, value));
|
||
|
}
|
||
|
|
||
|
private List<Parameter> GetParameterList()
|
||
|
{
|
||
|
List<Parameter> parameters = new List<Parameter>();
|
||
|
foreach ((RectTransform a, RectTransform b) in intParams)
|
||
|
{
|
||
|
string name = a.GetComponentInChildren<Text>().text;
|
||
|
int value;
|
||
|
if(int.TryParse(b.GetComponentInChildren<Text>().text, out value))
|
||
|
{
|
||
|
parameters.Add(new Parameter(name, value));
|
||
|
}
|
||
|
}
|
||
|
foreach ((RectTransform a, RectTransform b) in fltParams)
|
||
|
{
|
||
|
string name = a.GetComponentInChildren<Text>().text;
|
||
|
float value;
|
||
|
if (float.TryParse(b.GetComponentInChildren<Text>().text, out value))
|
||
|
{
|
||
|
parameters.Add(new Parameter(name, value));
|
||
|
}
|
||
|
}
|
||
|
foreach ((RectTransform a, RectTransform b) in fltParams)
|
||
|
{
|
||
|
string name = a.GetComponentInChildren<Text>().text;
|
||
|
string value = b.GetComponentInChildren<Text>().text;
|
||
|
parameters.Add(new Parameter(name, value));
|
||
|
}
|
||
|
return parameters;
|
||
|
}
|
||
|
|
||
|
void LogEvent()
|
||
|
{
|
||
|
Debug.Log("LogEvent");
|
||
|
List<Parameter> parameters = GetParameterList();
|
||
|
string eventName = textFieldEventName.GetComponentInChildren<Text>().text;
|
||
|
FirebaseAnalytics.LogEvent(eventName, parameters.ToArray());
|
||
|
|
||
|
}
|
||
|
|
||
|
void ResetAnalyticsData()
|
||
|
{
|
||
|
Debug.Log("ResetAnalyticsData");
|
||
|
FirebaseAnalytics.ResetAnalyticsData();
|
||
|
}
|
||
|
|
||
|
void SetAnalyticsCollectionEnabled()
|
||
|
{
|
||
|
Debug.Log(string.Format("SetAnalyticsCollectionEnabled({0})", analyticsCollectionEnabled));
|
||
|
FirebaseAnalytics.SetAnalyticsCollectionEnabled(analyticsCollectionEnabled);
|
||
|
}
|
||
|
|
||
|
void SetSessionTimeoutDuration()
|
||
|
{
|
||
|
long ms;
|
||
|
if( long.TryParse(textFieldSessionTimeoutDuration.GetComponentInChildren<Text>().text, out ms) )
|
||
|
{
|
||
|
Debug.Log(string.Format("SetSessionTimeoutDuration({0})", ms));
|
||
|
FirebaseAnalytics.SetSessionTimeoutDuration(System.TimeSpan.FromMilliseconds(ms));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void SetUserId()
|
||
|
{
|
||
|
string userId = textFieldUserId.GetComponentInChildren<Text>().text;
|
||
|
Debug.Log(string.Format("SetUserId({0})", userId));
|
||
|
FirebaseAnalytics.SetUserId(userId);
|
||
|
}
|
||
|
|
||
|
void SetUserProperty()
|
||
|
{
|
||
|
string name = textFieldName.GetComponentInChildren<Text>().text;
|
||
|
string property = textFieldProperty.GetComponentInChildren<Text>().text;
|
||
|
FirebaseAnalytics.SetUserProperty(name, property);
|
||
|
}
|
||
|
#endif
|
||
|
}
|