Unity网络请求UnityWebRequest
UnityWebRequest 可以实现网络数据请求功能支持GET post请求方法
1:GET请求服务器数据
public static IEnumerator GetText(string url) { UnityWebRequest request = UnityWebRequest.Get(url); yield return request.SendWebRequest(); if (request.isNetworkError || request.isHttpError) { Debug.Log(request.error); } else { // 将结果显示为文本 Debug.Log(request.downloadHandler.text); Result res = JsonUtility.FromJson<Result>(request.downloadHandler.text); } }
2:下载纹理贴图
//下载纹理http://www.my-server.com/image.png public static IEnumerable GetTexture(string url) { UnityWebRequest request = new UnityWebRequest(url); yield return request.SendWebRequest(); if (request.isNetworkError || request.isHttpError) { Debug.Log(request.error); } else { Texture myTexture = ((DownloadHandlerTexture)request.downloadHandler).texture; // Texture myTexture = DownloadHandlerTexture.GetContent(request); } }
3:下载AB包
//下载 AssetBundle http://www.my-server.com/myData.unity3d public static IEnumerable GetAssetBundle(string url) { UnityWebRequest request = new UnityWebRequest(url); yield return request.SendWebRequest(); if (request.isNetworkError || request.isHttpError) { Debug.Log(request.error); } else { AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(request); } }
4:POST方法
public static IEnumerable PostData(string url) { WWWForm data = new WWWForm(); data.AddField("name", "jake"); UnityWebRequest request = UnityWebRequest.Post(url,data); request.SetRequestHeader("token","werwerwer"); yield return request.SendWebRequest(); if (request.isNetworkError || request.isHttpError) { Debug.Log(request.error); } else { } }