WebRequestCounter.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. namespace YooAsset
  5. {
  6. internal class WebRequestCounter
  7. {
  8. #if UNITY_EDITOR
  9. [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.SubsystemRegistration)]
  10. private static void OnRuntimeInitialize()
  11. {
  12. _requestFailedRecorder.Clear();
  13. }
  14. #endif
  15. /// <summary>
  16. /// 记录网络请求失败事件的次数
  17. /// </summary>
  18. private static readonly Dictionary<string, int> _requestFailedRecorder = new Dictionary<string, int>(1000);
  19. /// <summary>
  20. /// 记录请求失败事件
  21. /// </summary>
  22. public static void RecordRequestFailed(string packageName, string eventName)
  23. {
  24. string key = $"{packageName}_{eventName}";
  25. if (_requestFailedRecorder.ContainsKey(key) == false)
  26. _requestFailedRecorder.Add(key, 0);
  27. _requestFailedRecorder[key]++;
  28. }
  29. /// <summary>
  30. /// 获取请求失败的次数
  31. /// </summary>
  32. public static int GetRequestFailedCount(string packageName, string eventName)
  33. {
  34. string key = $"{packageName}_{eventName}";
  35. if (_requestFailedRecorder.ContainsKey(key) == false)
  36. _requestFailedRecorder.Add(key, 0);
  37. return _requestFailedRecorder[key];
  38. }
  39. }
  40. }