diff --git a/.editorconfig b/.editorconfig
index e008dee..9b10c4b 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -27,13 +27,13 @@ csharp_new_line_before_open_brace = none
# } else {
# ...
# }
-csharp_new_line_before_else = false
+#csharp_new_line_before_else = false
# try {
# ...
# } catch (Exception e) {
# ...
# }
-csharp_new_line_before_catch = false
+#csharp_new_line_before_catch = false
# try {
# ...
# } catch (Exception e) {
@@ -41,6 +41,6 @@ csharp_new_line_before_catch = false
# } finally {
# ...
# }
-csharp_new_line_before_finally = false
+#csharp_new_line_before_finally = false
# 错误提示,如果不正常可以删掉
# dotnet_diagnostic.IDE0055.severity = error
\ No newline at end of file
diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity
index 4c182e0..0c78944 100644
--- a/Assets/Scenes/SampleScene.unity
+++ b/Assets/Scenes/SampleScene.unity
@@ -139,7 +139,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 1
+ m_IsActive: 0
--- !u!114 &36355708
MonoBehaviour:
m_ObjectHideFlags: 0
diff --git a/Packages/Network/Runtime.meta b/Packages/Network/Runtime.meta
new file mode 100644
index 0000000..9c2d2b4
--- /dev/null
+++ b/Packages/Network/Runtime.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e7df15d428a2ca947a677d331d5848b5
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/Network/Runtime/AsyncWebRequest.cs b/Packages/Network/Runtime/AsyncWebRequest.cs
new file mode 100644
index 0000000..0edb12a
--- /dev/null
+++ b/Packages/Network/Runtime/AsyncWebRequest.cs
@@ -0,0 +1,66 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Networking;
+using System.Runtime.CompilerServices;
+using System.Threading.Tasks;
+
+namespace MuHua {
+ ///
+ /// 异步网络请求
+ ///
+ public static class AsyncWebRequest {
+ /// 发送请求
+ 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); }
+ }
+ public static async void Get(DataRequest request) {
+ string url = request.Url;
+ using UnityWebRequest web = UnityWebRequest.Get(url);
+ await web.SendWebRequest();
+ bool isDone = web.isDone && web.result == UnityWebRequest.Result.Success;
+ request.RequestResultHandle(isDone, web);
+ }
+ public static async void PostForm(DataRequest request) {
+ string url = request.Url;
+ WWWForm form = request.Form;
+ using UnityWebRequest web = UnityWebRequest.Post(url, form);
+ await web.SendWebRequest();
+ bool isDone = web.isDone && web.result == UnityWebRequest.Result.Success;
+ request.RequestResultHandle(isDone, web);
+ }
+ public static async void 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");
+ await web.SendWebRequest();
+ bool isDone = web.isDone && web.result == UnityWebRequest.Result.Success;
+ request.RequestResultHandle(isDone, web);
+
+ }
+ public static async void Texture(DataRequest request) {
+ string url = request.Url;
+ using UnityWebRequest web = UnityWebRequestTexture.GetTexture(url);
+ await web.SendWebRequest();
+ bool isDone = web.isDone && web.result == UnityWebRequest.Result.Success;
+ request.RequestResultHandle(isDone, web);
+ }
+ public static TaskAwaiter