NetworkManager.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. using UnityEngine;
  3. using UnityEngine.Networking;
  4. namespace FlatKit {
  5. public static class NetworkManager {
  6. private static UnityWebRequest _request;
  7. public static void GetVersion(Action<string> callback) {
  8. const string url = "https://dustyroom.com/flat-kit/version.txt";
  9. GetRequest(url, request => {
  10. #if UNITY_2020_3_OR_NEWER
  11. if (request.result == UnityWebRequest.Result.Success) {
  12. #else
  13. if (!request.isNetworkError && !request.isHttpError) {
  14. #endif
  15. var text = request.downloadHandler.text;
  16. callback(text);
  17. } else {
  18. Debug.LogError($"[Flat Kit] {request.error}: {request.downloadHandler.text}.");
  19. }
  20. });
  21. }
  22. private static void GetRequest(string url, Action<UnityWebRequest> callback) {
  23. if (_request != null) {
  24. return;
  25. }
  26. _request = UnityWebRequest.Get(url);
  27. var op = _request.SendWebRequest();
  28. op.completed += operation => {
  29. callback(_request);
  30. _request.Dispose();
  31. _request = null;
  32. };
  33. }
  34. }
  35. }