A game about forced loneliness, made by TACStudios
at master 3.5 kB view raw
1#if UNITY_EDITOR && UNITY_INPUT_SYSTEM_ENABLE_UI 2using System; 3using UnityEngine.InputSystem.UI; 4 5namespace UnityEngine.InputSystem.Editor 6{ 7 /// <summary> 8 /// Analytics record for tracking engagement with Input Action Asset editor(s). 9 /// </summary> 10#if UNITY_2023_2_OR_NEWER 11 [UnityEngine.Analytics.AnalyticInfo(eventName: kEventName, maxEventsPerHour: kMaxEventsPerHour, 12 maxNumberOfElements: kMaxNumberOfElements, vendorKey: UnityEngine.InputSystem.InputAnalytics.kVendorKey)] 13#endif // UNITY_2023_2_OR_NEWER 14 internal class VirtualMouseInputEditorAnalytic : UnityEngine.InputSystem.InputAnalytics.IInputAnalytic 15 { 16 public const string kEventName = "input_virtualmouseinput_editor_destroyed"; 17 public const int kMaxEventsPerHour = 100; // default: 1000 18 public const int kMaxNumberOfElements = 100; // default: 1000 19 20 [Serializable] 21 internal struct Data : UnityEngine.InputSystem.InputAnalytics.IInputAnalyticData 22 { 23 /// <summary> 24 /// Maps to <see cref="VirtualMouseInput.cursorMode"/>. Determines which cursor representation to use. 25 /// </summary> 26 public CursorMode cursor_mode; 27 28 /// <summary> 29 /// Maps to <see cref="VirtualMouseInput.cursorSpeed" />. Speed in pixels per second with which to move the cursor. 30 /// </summary> 31 public float cursor_speed; 32 33 /// <summary> 34 /// Maps to <see cref="VirtualMouseInput.cursorMode"/>. Multiplier for values received from <see cref="VirtualMouseInput.scrollWheelAction"/>. 35 /// </summary> 36 public float scroll_speed; 37 38 public enum CursorMode 39 { 40 SoftwareCursor = 0, 41 HardwareCursorIfAvailable = 1 42 } 43 44 private static CursorMode ToCursorMode(VirtualMouseInput.CursorMode value) 45 { 46 switch (value) 47 { 48 case VirtualMouseInput.CursorMode.SoftwareCursor: 49 return CursorMode.SoftwareCursor; 50 case VirtualMouseInput.CursorMode.HardwareCursorIfAvailable: 51 return CursorMode.HardwareCursorIfAvailable; 52 default: 53 throw new ArgumentOutOfRangeException(nameof(value)); 54 } 55 } 56 57 public Data(VirtualMouseInput value) 58 { 59 cursor_mode = ToCursorMode(value.cursorMode); 60 cursor_speed = value.cursorSpeed; 61 scroll_speed = value.scrollSpeed; 62 } 63 } 64 65 public InputAnalytics.InputAnalyticInfo info => 66 new InputAnalytics.InputAnalyticInfo(kEventName, kMaxEventsPerHour, kMaxNumberOfElements); 67 68 private readonly UnityEditor.Editor m_Editor; 69 70 public VirtualMouseInputEditorAnalytic(UnityEditor.Editor editor) 71 { 72 m_Editor = editor; 73 } 74 75#if UNITY_2023_2_OR_NEWER 76 public bool TryGatherData(out UnityEngine.Analytics.IAnalytic.IData data, out Exception error) 77#else 78 public bool TryGatherData(out InputAnalytics.IInputAnalyticData data, out Exception error) 79#endif 80 { 81 try 82 { 83 data = new Data(m_Editor.target as VirtualMouseInput); 84 error = null; 85 } 86 catch (Exception e) 87 { 88 data = null; 89 error = e; 90 } 91 return true; 92 } 93 } 94} 95#endif