diff --git a/Assets/ModuleCore/ModuleAnalysis/AnalysisCollector.cs b/Assets/ModuleCore/ModuleAnalysis/AnalysisCollector.cs index 8e204c7..4e96176 100644 --- a/Assets/ModuleCore/ModuleAnalysis/AnalysisCollector.cs +++ b/Assets/ModuleCore/ModuleAnalysis/AnalysisCollector.cs @@ -25,7 +25,7 @@ public class AnalysisCollector : Module { SaveTool.SaveText(FileName.Create(code), json); StockToAnalysis(json, action); }; - AsyncWebRequest.Execute(request); + WebRequestAsync.Execute(request); } public void StockToAnalysis(string json, Action> action = null) { diff --git a/Packages/Network/Runtime/DataRequest.cs b/Packages/Network/Runtime/DataRequest.cs index 17aa05f..4fcabaa 100644 --- a/Packages/Network/Runtime/DataRequest.cs +++ b/Packages/Network/Runtime/DataRequest.cs @@ -11,7 +11,7 @@ namespace MuHua { /// Web请求地址 public abstract string Url { get; } /// Web请求类型 - public abstract AsyncWebRequestType RequestType { get; } + public abstract WebRequestType RequestType { get; } /// 提交json数据 public virtual string Json { get; } /// 提交Form表单数据 diff --git a/Packages/Network/Runtime/DataRequestGet.cs b/Packages/Network/Runtime/DataRequestGet.cs index bbb3882..35389e3 100644 --- a/Packages/Network/Runtime/DataRequestGet.cs +++ b/Packages/Network/Runtime/DataRequestGet.cs @@ -15,7 +15,7 @@ namespace MuHua { public Action OnCallback; public override string Url => url; - public override AsyncWebRequestType RequestType => AsyncWebRequestType.GET; + public override WebRequestType RequestType => WebRequestType.GET; /// Web Get请求数据 public DataRequestGet(string url, Action OnCallback = null) { diff --git a/Packages/Network/Runtime/DataRequestPost.cs b/Packages/Network/Runtime/DataRequestPost.cs index 86bd76c..d265f3c 100644 --- a/Packages/Network/Runtime/DataRequestPost.cs +++ b/Packages/Network/Runtime/DataRequestPost.cs @@ -12,13 +12,13 @@ namespace MuHua { public readonly string url; public readonly string json; public readonly WWWForm form; - public readonly AsyncWebRequestType type; + public readonly WebRequestType type; public Action OnError; public Action OnCallback; public override string Url => url; - public override AsyncWebRequestType RequestType => type; + public override WebRequestType RequestType => type; public override string Json => json; public override WWWForm Form => form; @@ -27,14 +27,14 @@ namespace MuHua { this.url = url; this.json = json; this.OnCallback = OnCallback; - type = AsyncWebRequestType.PostJson; + type = WebRequestType.PostJson; } /// Web Post请求 提交WWWForm数据 public DataRequestPost(string url, WWWForm form, Action OnCallback = null) { this.url = url; this.form = form; this.OnCallback = OnCallback; - type = AsyncWebRequestType.PostForm; + type = WebRequestType.PostForm; } public override void RequestResultHandle(bool isDone, UnityWebRequest web) { diff --git a/Packages/Network/Runtime/DataRequestTexture.cs b/Packages/Network/Runtime/DataRequestTexture.cs index 0702597..1bef412 100644 --- a/Packages/Network/Runtime/DataRequestTexture.cs +++ b/Packages/Network/Runtime/DataRequestTexture.cs @@ -15,7 +15,7 @@ namespace MuHua { public Action OnCallback; public override string Url => url; - public override AsyncWebRequestType RequestType => AsyncWebRequestType.Texture; + public override WebRequestType RequestType => WebRequestType.Texture; /// Web Get请求 Texture public DataRequestTexture(string url, Action OnCallback = null) { diff --git a/Packages/Network/Runtime/WebRequest.cs b/Packages/Network/Runtime/WebRequest.cs new file mode 100644 index 0000000..2b345c0 --- /dev/null +++ b/Packages/Network/Runtime/WebRequest.cs @@ -0,0 +1,58 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Networking; + +namespace MuHua { + /// + /// 协程网络请求 + /// + public static class WebRequest { + /// 发送请求 + public static IEnumerator Execute(DataRequest request) { + if (request.RequestType == WebRequestType.GET) { yield return Get(request); } + if (request.RequestType == WebRequestType.PostForm) { yield return PostForm(request); } + if (request.RequestType == WebRequestType.PostJson) { yield return PostJson(request); } + if (request.RequestType == WebRequestType.Texture) { yield return Texture(request); } + } + public static IEnumerator Get(DataRequest request) { + string url = request.Url; + using UnityWebRequest web = UnityWebRequest.Get(url); + yield return web.SendWebRequest(); + bool isDone = web.isDone && web.result == UnityWebRequest.Result.Success; + request.RequestResultHandle(isDone, web); + } + public static IEnumerator PostForm(DataRequest request) { + string url = request.Url; + WWWForm form = request.Form; + using UnityWebRequest web = UnityWebRequest.Post(url, form); + yield return web.SendWebRequest(); + bool isDone = web.isDone && web.result == UnityWebRequest.Result.Success; + request.RequestResultHandle(isDone, web); + } + public static IEnumerator PostJson(DataRequest request) { + string url = request.Url; + string json = request.Json; + byte[] postBytes = System.Text.Encoding.Default.GetBytes(json); +#if UNITY_2022 + using UnityWebRequest web = UnityWebRequest.PostWwwForm(url, "POST"); +#else + using UnityWebRequest web = UnityWebRequest.Post(url, "POST"); +#endif + web.uploadHandler.Dispose(); + web.uploadHandler = new UploadHandlerRaw(postBytes); + web.SetRequestHeader("Content-Type", "application/json"); + yield return web.SendWebRequest(); + bool isDone = web.isDone && web.result == UnityWebRequest.Result.Success; + request.RequestResultHandle(isDone, web); + + } + public static IEnumerator Texture(DataRequest request) { + string url = request.Url; + using UnityWebRequest web = UnityWebRequestTexture.GetTexture(url); + yield return web.SendWebRequest(); + bool isDone = web.isDone && web.result == UnityWebRequest.Result.Success; + request.RequestResultHandle(isDone, web); + } + } +} diff --git a/Packages/Network/Runtime/WebRequest.cs.meta b/Packages/Network/Runtime/WebRequest.cs.meta new file mode 100644 index 0000000..d530269 --- /dev/null +++ b/Packages/Network/Runtime/WebRequest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c27ad4aa76c0a044f8ed6b3c3e062cf2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Network/Runtime/AsyncWebRequest.cs b/Packages/Network/Runtime/WebRequestAsync.cs similarity index 86% rename from Packages/Network/Runtime/AsyncWebRequest.cs rename to Packages/Network/Runtime/WebRequestAsync.cs index 0edb12a..f680e78 100644 --- a/Packages/Network/Runtime/AsyncWebRequest.cs +++ b/Packages/Network/Runtime/WebRequestAsync.cs @@ -10,13 +10,13 @@ namespace MuHua { /// /// 异步网络请求 /// - public static class AsyncWebRequest { + public static class WebRequestAsync { /// 发送请求 public static void Execute(DataRequest request) { - if (request.RequestType == AsyncWebRequestType.GET) { Get(request); } - if (request.RequestType == AsyncWebRequestType.PostForm) { PostForm(request); } - if (request.RequestType == AsyncWebRequestType.PostJson) { PostJson(request); } - if (request.RequestType == AsyncWebRequestType.Texture) { Texture(request); } + if (request.RequestType == WebRequestType.GET) { Get(request); } + if (request.RequestType == WebRequestType.PostForm) { PostForm(request); } + if (request.RequestType == WebRequestType.PostJson) { PostJson(request); } + if (request.RequestType == WebRequestType.Texture) { Texture(request); } } public static async void Get(DataRequest request) { string url = request.Url; diff --git a/Packages/Network/Runtime/AsyncWebRequest.cs.meta b/Packages/Network/Runtime/WebRequestAsync.cs.meta similarity index 100% rename from Packages/Network/Runtime/AsyncWebRequest.cs.meta rename to Packages/Network/Runtime/WebRequestAsync.cs.meta diff --git a/Packages/Network/Runtime/AsyncWebRequestType.cs b/Packages/Network/Runtime/WebRequestType.cs similarity index 91% rename from Packages/Network/Runtime/AsyncWebRequestType.cs rename to Packages/Network/Runtime/WebRequestType.cs index 6b46b81..e78930d 100644 --- a/Packages/Network/Runtime/AsyncWebRequestType.cs +++ b/Packages/Network/Runtime/WebRequestType.cs @@ -6,7 +6,7 @@ namespace MuHua { /// /// Web请求类型 /// - public enum AsyncWebRequestType { + public enum WebRequestType { /// GET GET = 0, /// POST 表单 diff --git a/Packages/Network/Runtime/AsyncWebRequestType.cs.meta b/Packages/Network/Runtime/WebRequestType.cs.meta similarity index 100% rename from Packages/Network/Runtime/AsyncWebRequestType.cs.meta rename to Packages/Network/Runtime/WebRequestType.cs.meta diff --git a/Packages/manifest.json b/Packages/manifest.json index 0d6652e..424cafb 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -8,6 +8,7 @@ "com.unity.render-pipelines.universal": "14.0.11", "com.unity.textmeshpro": "3.0.6", "com.unity.timeline": "1.7.6", + "com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.10", "com.unity.ugui": "1.0.0", "com.unity.visualscripting": "1.9.4", "com.unity.modules.ai": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 695349f..c9071c0 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -163,6 +163,22 @@ "com.unity.searcher": "4.9.2" } }, + "com.unity.sysroot": { + "version": "2.0.10", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.cn" + }, + "com.unity.sysroot.linux-x86_64": { + "version": "2.0.9", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.sysroot": "2.0.10" + }, + "url": "https://packages.unity.cn" + }, "com.unity.test-framework": { "version": "1.1.33", "depth": 1, @@ -205,6 +221,16 @@ }, "url": "https://packages.unity.cn" }, + "com.unity.toolchain.win-x86_64-linux-x86_64": { + "version": "2.0.10", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.sysroot": "2.0.10", + "com.unity.sysroot.linux-x86_64": "2.0.9" + }, + "url": "https://packages.unity.cn" + }, "com.unity.ugui": { "version": "1.0.0", "depth": 0,