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 {
}
}