A game about forced loneliness, made by TACStudios
1#if UNITY_EDITOR
2using System;
3
4namespace UnityEngine.InputSystem.Editor
5{
6#if UNITY_2023_2_OR_NEWER
7 [UnityEngine.Analytics.AnalyticInfo(eventName: kEventName, maxEventsPerHour: kMaxEventsPerHour,
8 maxNumberOfElements: kMaxNumberOfElements, vendorKey: UnityEngine.InputSystem.InputAnalytics.kVendorKey)]
9#endif // UNITY_2023_2_OR_NEWER
10 internal class PlayerInputManagerEditorAnalytic : UnityEngine.InputSystem.InputAnalytics.IInputAnalytic
11 {
12 public const string kEventName = "input_playerinputmanager_editor_destroyed";
13 public const int kMaxEventsPerHour = 100; // default: 1000
14 public const int kMaxNumberOfElements = 100; // default: 1000
15
16 public InputAnalytics.InputAnalyticInfo info =>
17 new InputAnalytics.InputAnalyticInfo(kEventName, kMaxEventsPerHour, kMaxNumberOfElements);
18
19 private readonly UnityEditor.Editor m_Editor;
20
21 public PlayerInputManagerEditorAnalytic(UnityEditor.Editor editor)
22 {
23 m_Editor = editor;
24 }
25
26#if UNITY_2023_2_OR_NEWER
27 public bool TryGatherData(out UnityEngine.Analytics.IAnalytic.IData data, out Exception error)
28#else
29 public bool TryGatherData(out InputAnalytics.IInputAnalyticData data, out Exception error)
30#endif
31 {
32 try
33 {
34 data = new Data(m_Editor.target as PlayerInputManager);
35 error = null;
36 }
37 catch (Exception e)
38 {
39 data = null;
40 error = e;
41 }
42 return true;
43 }
44
45 internal struct Data : UnityEngine.InputSystem.InputAnalytics.IInputAnalyticData
46 {
47 public enum PlayerJoinBehavior
48 {
49 JoinPlayersWhenButtonIsPressed = 0, // default
50 JoinPlayersWhenJoinActionIsTriggered = 1,
51 JoinPlayersManually = 2
52 }
53
54 public InputEditorAnalytics.PlayerNotificationBehavior behavior;
55 public PlayerJoinBehavior join_behavior;
56 public bool joining_enabled_by_default;
57 public int max_player_count;
58
59 public Data(PlayerInputManager value)
60 {
61 behavior = InputEditorAnalytics.ToNotificationBehavior(value.notificationBehavior);
62 join_behavior = ToPlayerJoinBehavior(value.joinBehavior);
63 joining_enabled_by_default = value.joiningEnabled;
64 max_player_count = value.maxPlayerCount;
65 }
66
67 private static PlayerJoinBehavior ToPlayerJoinBehavior(UnityEngine.InputSystem.PlayerJoinBehavior value)
68 {
69 switch (value)
70 {
71 case UnityEngine.InputSystem.PlayerJoinBehavior.JoinPlayersWhenButtonIsPressed:
72 return PlayerJoinBehavior.JoinPlayersWhenButtonIsPressed;
73 case UnityEngine.InputSystem.PlayerJoinBehavior.JoinPlayersWhenJoinActionIsTriggered:
74 return PlayerJoinBehavior.JoinPlayersWhenJoinActionIsTriggered;
75 case UnityEngine.InputSystem.PlayerJoinBehavior.JoinPlayersManually:
76 return PlayerJoinBehavior.JoinPlayersManually;
77 default:
78 throw new ArgumentOutOfRangeException(nameof(value));
79 }
80 }
81 }
82 }
83}
84#endif