当前位置:网站首页>Unity C # e-learning (10) -- unitywebrequest (1)
Unity C # e-learning (10) -- unitywebrequest (1)
2022-06-26 15:05:00 【Handsome_ shuai_】
Unity C# E-learning ( Ten )——UnityWebRequest( One )
UnityWebRequest And WWW The difference between
- UnityWebRequest Split various resources
- UnityWebRequest Than WWW More efficient , Very low GC produce
- More convenient to upload data
One .UnityWebRequest Class to get data
1. Download Text and binary data
private IEnumerator LoadText()
{
UnityWebRequest unityWebRequest = UnityWebRequest.Get("http://192.168.1.103:8080/Http_Server/zzs.txt");
yield return unityWebRequest.SendWebRequest();
if (unityWebRequest.result == UnityWebRequest.Result.Success)
{
string text = unityWebRequest.downloadHandler.text;
byte[] bytes = unityWebRequest.downloadHandler.data;
Debug.Log(text);
Debug.Log(bytes.Length);
Debug.Log(" Text download complete !");
}
else
{
Debug.Log(" Download failed :" + unityWebRequest.result);
}
}
2. Download image data
private IEnumerator LoadTexture()
{
UnityWebRequest unityWebRequest =
UnityWebRequestTexture.GetTexture("http://192.168.1.103:8080/Http_Server/xxx.jpg");
yield return unityWebRequest.SendWebRequest();
if (unityWebRequest.result == UnityWebRequest.Result.Success)
{
// Mode one
Texture2D tex2D1 = (unityWebRequest.downloadHandler as DownloadHandlerTexture)?.texture;
// Mode two
Texture2D tex2D2 = DownloadHandlerTexture.GetContent(unityWebRequest);
image.texture = tex2D2;
Debug.Log(" Picture download completed !");
}
else
{
Debug.Log(" Download failed :" + unityWebRequest.result);
}
}
3. download AssetBundle data
private IEnumerator LoadAb()
{
UnityWebRequest unityWebRequest =
UnityWebRequestAssetBundle.GetAssetBundle("http://192.168.1.103:8080/Http_Server/photo.ywj");
unityWebRequest.SendWebRequest();
while (!unityWebRequest.isDone)
{
Debug.Log(unityWebRequest.downloadProgress);
Debug.Log(unityWebRequest.downloadedBytes);
yield return null;
}
if (unityWebRequest.result == UnityWebRequest.Result.Success)
{
// Mode one
AssetBundle assetBundle1 = (unityWebRequest.downloadHandler as DownloadHandlerAssetBundle)?.assetBundle;
// Mode two
AssetBundle assetBundle2 = DownloadHandlerAssetBundle.GetContent(unityWebRequest);
if (assetBundle1 != null) Debug.Log(assetBundle1.name);
if (assetBundle2 != null) Debug.Log(assetBundle2.name);
Debug.Log(" Picture download completed !");
}
else
{
Debug.Log(" Download failed :" + unityWebRequest.result);
}
}
4. Download audio data
private IEnumerator LoadAudioClip()
{
UnityWebRequest unityWebRequest =
UnityWebRequestMultimedia.GetAudioClip("http://192.168.1.103:8080/Http_Server/music.mp3", AudioType.MPEG);
yield return unityWebRequest.SendWebRequest();
if (unityWebRequest.result == UnityWebRequest.Result.Success)
{
AudioClip clip = DownloadHandlerAudioClip.GetContent(unityWebRequest);
audioSource.clip = clip;
audioSource.Play();
Debug.Log(" Audio download succeeded !");
}
else
{
Debug.Log(" Download failed :"+unityWebRequest.result);
}
}
Two .UnityWebRequest Class upload data
1. Upload data class MultipartFormDataSection
//======MultipartFormDataSection======
//1. Binary byte array
dataList.Add(new MultipartFormDataSection(Encoding.UTF8.GetBytes("zzs666")));
//2. character string
dataList.Add(new MultipartFormDataSection("zzs666"));
//3. Parameter name , Parameter values
dataList.Add(new MultipartFormDataSection("Name","zzs"));
dataList.Add(new MultipartFormDataSection("Msg",new byte[1024]));
2. Upload data class MultipartFormFileSection
//======MultipartFormFileSection======
//1. Binary byte array
dataList.Add(new MultipartFormFileSection(Encoding.UTF8.GetBytes("zzs666")));
//2. file name , Byte array ( Commonly used )
dataList.Add(new MultipartFormFileSection(" Uploaded files .jpg",File.ReadAllBytes(Application.streamingAssetsPath +"/test.jpg")));
//3. String data , Coding format , file name ( Commonly used )
dataList.Add(new MultipartFormFileSection("zzs!zzs!zzs!",Encoding.UTF8, "zzsTest.txt"));
3.Post Send data related
private IEnumerator UpLoad()
{
List<IMultipartFormSection> data = new List<IMultipartFormSection>
{
new MultipartFormDataSection("Name", "MrTang"),
new MultipartFormFileSection("Unity Uploaded files .jpg",
File.ReadAllBytes(Application.streamingAssetsPath + "/test.jpg")),
new MultipartFormFileSection("zzs!zzs!zzs!", Encoding.UTF8, "zzsTest.txt")
};
UnityWebRequest unityWebRequest = UnityWebRequest.Post("http://192.168.1.103:8080/Http_Server/", data);
yield return unityWebRequest.SendWebRequest();
if (unityWebRequest.result == UnityWebRequest.Result.Success)
{
Debug.Log(" Upload to complete !");
}
else
{
Debug.Log(" Upload failed !" + unityWebRequest.result + unityWebRequest.error);
}
}
边栏推荐
- 小程序:uniapp解决 vendor.js 体积过大的问题
- Attention meets Geometry:几何引导的时空注意一致性自监督单目深度估计
- The R language cartools package divides data, the scale function scales data, and the KNN function of the class package constructs a k-nearest neighbor classifier
- Sikuli 基于图形识别的自动化测试技术
- R语言caTools包进行数据划分、scale函数进行数据缩放、class包的knn函数构建K近邻分类器
- Numpy基本使用
- 文献1
- MongoDB系列之适用场景和不适用场景
- [solo π] ADB connects multiple mobile phones
- Optimizing for vectorization
猜你喜欢

Where do people get their top energy?

使用卷积对数据进行平滑处理

【雲原生】 ”人人皆可“ 編程的無代碼 iVX 編輯器

teamviewer显示设备数量上限解决方法

15 BS object Node name Node name String get nested node content

The heavyweight white paper was released. Huawei continues to lead the new model of smart park construction in the future

Keil4打开单片机工程一片空白,cpu100%程序卡死的问题解决

Bank of Beijing x Huawei: network intelligent operation and maintenance tamps the base of digital transformation service

Solution to the upper limit of TeamViewer display devices

Smoothing data using convolution
随机推荐
设计人员拿到的工程坐标系等高线CAD图如何加载进图新地球
券商经理给的开户链接办理股票开户安全吗?我想开个户
数据库-视图
Use of subqueries
RestCloud ETL解决shell脚本参数化
What is the ranking of Guosen Securities? Is it safe to open a stock account?
shell脚本多进程并发写法实例(高阶修炼)
一键分析硬件/IO/全国网络性能脚本(强推)
使用RestCloud ETL Shell组件实现定时调度DataX离线任务
Common operation and Principle Exploration of stream
View touch analysis
qt下多个子控件信号槽绑定方法
整理了一批脚本标准的函数模块(2021版)
kubernetes的Controller之deployment
Halcon C# 设置窗体字体,自适应显示图片
Notes on writing questions in C language -- table tennis competition
网上找客户经理办理股票开户安全吗??
Restcloud ETL extracting dynamic library table data
Pod of kubernetes
This is the graceful file system mounting method, which is effective through personal testing