Unity数据下载


  1 /* HttpRequestTest.cs
2 * 采用C#的WebClinet类下载数据,多线程,但需要在主线程里转成texture。
3 */
4 using System;
5 using System.Text;
6 using System.Net;
7 using UnityEngine;
8
9 public enum RequestType
10 {
11 Text,
12 Image
13 }
14
15 public interface IHttpRequest
16 {
17 void CaptureRequestData(int requestTag, string requestData);
18 void CaptureRequestTexture(int requestTag, byte[] texture);
19 void LostRequestData(int requestTag, string requestData);
20 }
21
22 public class HttpRequestInfo
23 {
24 public IHttpRequest httpRequest;
25 public RequestType requestType;
26 public int requestTag;
27
28 public HttpRequestInfo (IHttpRequest httpRequest, RequestType requestType, int requestTag)
29 {
30 this.httpRequest = httpRequest;
31 this.requestType = requestType;
32 this.requestTag = requestTag;
33 }
34 }
35
36 public class HttpRequestTest : MonoBehaviour
37 {
38 public static HttpRequestTest inst = null;
39
40 void Awake()
41 {
42 inst = this;
43 }
44
45 public void DownloadData(IHttpRequest httpRequest, RequestType requestType, string httpUrl, int requestTag)
46 {
47 WebClient webClient = new WebClient();
48 webClient.DownloadDataCompleted += DownloadDataCompletedCallback;
49 webClient.DownloadDataAsync(new Uri(httpUrl), new HttpRequestInfo(httpRequest, requestType, requestTag));
50 }
51
52 private void DownloadDataCompletedCallback(object sender, DownloadDataCompletedEventArgs args)
53 {
54 HttpRequestInfo httpRequestInfo = args.UserState as HttpRequestInfo;
55 if(!args.Cancelled && args.Error == null)
56 {
57 if(httpRequestInfo.requestType == RequestType.Text)
58 {
59 httpRequestInfo.httpRequest.CaptureRequestData(httpRequestInfo.requestTag, Encoding.UTF8.GetString(args.Result));
60 }
61 else if(httpRequestInfo.requestType == RequestType.Image)
62 {
63 httpRequestInfo.httpRequest.CaptureRequestTexture(httpRequestInfo.requestTag, args.Result);
64 }
65 }
66 else
67 {
68 string requestError = args.Error.Message;
69 httpRequestInfo.httpRequest.LostRequestData(httpRequestInfo.requestTag, requestError);
70 }
71 }
72
73 }
74
75
76
77 /* HttpRequestTestNew.cs
78 * 方便直接,但不是多线程,因此能得到texture。
79 */
80 using UnityEngine;
81 using System.Collections;
82
83 public enum RequestType
84 {
85 Text,
86 Image
87 }
88
89 public interface IHttpRequest
90 {
91 void CaptureRequestData(int requestTag, string requestData);
92 void CaptureRequestTexture(int requestTag, Texture texture);
93 void LostRequestData(int requestTag, string requestData);
94 }
95
96 public class HttpRequestTestNew : MonoBehaviour
97 {
98 public static HttpRequestTestNew inst = null;
99
100 void Awake()
101 {
102 inst = this;
103 }
104
105 public void DownloadData(IHttpRequest httpRequest, RequestType requestType, string httpUrl, int requestTag)
106 {
107 WWW www = new WWW(httpUrl);
108 StartCoroutine(DownloadCoroutine(www, httpRequest, requestType, requestTag));
109 }
110
111 private IEnumerator DownloadCoroutine(WWW www, IHttpRequest httpRequest, RequestType requestType, int requestTag)
112 {
113 yield return www;
114 if(!string.IsNullOrEmpty(www.error))
115 {
116 Debug.LogError("www is error!");
117 httpRequest.LostRequestData(requestTag, www.error);
118 }
119 else
120 {
121 switch(requestType)
122 {
123 case RequestType.Text:
124 httpRequest.CaptureRequestData(requestTag, www.text);
125 break;
126 case RequestType.Image:
127 httpRequest.CaptureRequestTexture(requestTag, www.texture);
128 break;
129 }
130 }
131 if(www.isDone)
132 www.Dispose();
133 }
134 }

Unity数据下载

时间: 2024-10-07 00:42:29

Unity数据下载的相关文章

DEM数据下载及使用帮助

BIGEMAP等高线(高程)使用教程 BIGEMAP高程数据主要特点: 覆盖全球 (任意范围下载) 精度准确 等高线细腻效果好 高程矢量数据可编辑 支持AutoCAD/南方CASS (DXF.DWG.DAT) 支持三维(STL) (二维/三维多段线) 支持多格式转换 (kml/kmz/shp/dxf/txt等) 支持投影转换(Xi'an80,Beijing54,WGS84,CGCS2000) 支持公里网格 案例   等高线完美套合卫星影像教程 高程点数据转成南方CASS的DAT格式(教程) DE

遥感数据下载地址

遥感数据下载地址 1 AVHRR.DEM.EO-1数据下载地址 http://earthexplorer.usgs.gov/ 2 ASTER.MOIDS.EO-1数据下载地址 http://glovis.usgs.gov/ 3 EO-1 Hyperion 数据介绍网址 http://eo1.gsfc.nasa.gov/new/extended/sensorWeb/general.html 4 室内的高光谱数据(400nm~700nm)光谱分辨率为10nm http://color.psych.u

iOS之网络数据下载和JSON解析

iOS之网络数据下载和JSON解析 简介 在本文中笔者主要给大家介绍IOS如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示. 涉及到的知识点: 1.NSURLConnection 异步下载和封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 什么是网络应用? 需要通过联网进行操作的应用 网络应用的程序结构? c/s结构:即客户端/服务端 常见的

iOS之网络数据下载和Json数据解析

iOS之网络数据下载和Json数据解析 简介 在本文中笔者将要给大家介绍iOS中如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据,以及如何显示数据和图片的异步下载显示 涉及到的知识点: 1.NSURLConnection异步下载封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 (1)什么是网络应用? 一般情况下, iPhone的计算机, 照相机不需要从网络上下载数据也能运行, 所以这

网络数据下载和JSON解析

ios之网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍iOS中如何利用NSURLConnection从网络上,下载数据,以及如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示. 涉及到的知识点有: 1.NSURLConnection异步下载和封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 什么是网络应用? 对于iOS开发来说的网络应用,笔者觉得需要通过访问网络,获取服务端数据来实现全

界面,数据下载(练习)

//  MyTabBar.m #import "MyTabBar.h" #import "LimitViewController.h" #import "SellViewController.h" #import "FreeViewController.h" #import "SabojectViewController.h" #import "HotViewController.h"

4_1网络学习第一天后感--网络数据下载

4_1网络学习第一天后感--网络数据下载 1.网络数据下载包括同步下载和异步下载,一般是使用异步下载,异步下载可以利用NSURLConnection这个类. 2.有关数据格式,有JSON格式(多数).XML格式.JSON格式如下: {} 代表字典,[] 代表数组 ,“” 代表字符串 , 100  代表NSNumber 3.分析网络接口 如:@"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&pa

ios的网络数据下载和json解析

ios的网络数据下载和json解析 简介 在本文中,笔者将要给大家介绍如何使用nsurlconnection 从网上下载数据,以及解析json数据格式,以及如何显示数据和图片的异步下载显示. 涉及的知识点: NSYRLConnection异步下载和封装 JSON格式和JSON格式解析 数据显示和使用SDwebimage异步下载图片 内容 网络下载基础知识介绍 NSURLConnection使用 JSON格式说明和格式化工具 一个完成页面的实现(包含model和SDWebimage) 什么是网络应

IOS 开发之网络数据下载和JSON解析

简介 在本文中,我将给大家介绍ios中如何运用NSURLConnection从网络上下载数据,以及解析JSON数据格式的数据,还有数据的显示和图片异步下载. 涉及到的知识点: 1.NSURLConnection的异步下载和数据请求方法的封装. 2.认识JSON格式和JSON格式的解析使用 3.数据在模拟器上的显示和图片的异步下载(使用SDWebImage异步显示图片,SDWebImage是一个库) 注意: 在ios开发中,无论是数据还是图片都是使用异步下载方法,不能使用同步. 内容 首先,要完成