A game about forced loneliness, made by TACStudios
at master 64 lines 2.9 kB view raw
1using System; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.Analytics; 5 6namespace Unity.Multiplayer.Center.Analytics 7{ 8 /// <summary> 9 /// Does the same as the MultiplayerCenterAnalytics, but logs the events to the console instead of sending them. 10 /// It is useful to debug fast, without the EditorAnalytics Debugger package (but it does not replace it). 11 /// </summary> 12 internal class DebugAnalytics : MultiplayerCenterAnalytics 13 { 14 public DebugAnalytics(string questionnaireVersion, IReadOnlyDictionary<string, string> questionDisplayNames, 15 IReadOnlyDictionary<string,string> answerDisplayNames) 16 : base(questionnaireVersion, questionDisplayNames, answerDisplayNames) { } 17 18 protected override void SendAnalytic(IAnalytic analytic) 19 { 20 analytic.TryGatherData(out var data, out var _); 21 switch (data) 22 { 23 case InstallData installData: 24 Debug.Log($"Event: {analytic.GetType()} - Data: {ToString(installData)}"); 25 break; 26 case RecommendationData recommendationData: 27 Debug.Log($"Event: {analytic.GetType()} - Data: {ToString(recommendationData)}"); 28 break; 29 case InteractionData interactionEventAnalytic: 30 Debug.Log($"Event: {analytic.GetType()} - Data: {ToString(interactionEventAnalytic)}"); 31 break; 32 default: 33 Debug.Log($"Unknown event: {analytic.GetType()} - Data: {data}"); 34 break; 35 } 36 } 37 38 static string ToString(GameSpec p) => $"GameSpec [{p.QuestionText} -> {p.AnswerText}]"; 39 40 static string ToString(Package p) => $"Package [{p.PackageId} - Selected {p.SelectedForInstall} - Reco {p.IsRecommended} - Inst {p.IsAlreadyInstalled}]"; 41 42 static string ToString(InstallData data) 43 { 44 var packageStrings = new List<string>(data.Packages.Length); 45 foreach (var package in data.Packages) 46 { 47 packageStrings.Add(ToString(package)); 48 } 49 return $"{data.PresetName} - Packages [{data.Packages.Length}] packages: \n{string.Join("\n", packageStrings)}"; 50 } 51 52 static string ToString(RecommendationData data) 53 { 54 var gameSpecStrings = new List<string>(data.GameSpecs.Length); 55 foreach (var gameSpec in data.GameSpecs) 56 { 57 gameSpecStrings.Add(ToString(gameSpec)); 58 } 59 return $"{data.PresetName} - GameSpecs [{data.GameSpecs.Length}] gamespecs: \n{string.Join("\n", gameSpecStrings)}"; 60 } 61 62 static string ToString(InteractionData data) => $"{data.SectionId}({data.TargetPackageId}) - {data.Type} - {data.DisplayName}"; 63 } 64}