当前位置:网站首页>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);
}
}
边栏推荐
猜你喜欢

获取两个dataframe的交并差集

The JVM outputs GC logs, causing the JVM to get stuck. I am stupid

Complimentary Book Cognitive Control: how does our brain accomplish tasks?

Deploy the flask environment using the pagoda panel

Authoritative announcement on the recruitment of teachers in Yan'an University in 2022

RestCloud ETL抽取動態庫錶數據實踐

Where do people get their top energy?

权威发布 | 延安大学2022年教师岗位招聘公告

The engine "node" is inconsistent with this module

Halcon C # sets the form font and adaptively displays pictures
随机推荐
Keil4打开单片机工程一片空白,cpu100%程序卡死的问题解决
数据库-序列
This is the graceful file system mounting method, which is effective through personal testing
vue中缓存页面 keepAlive使用
Kubernetes的pod
打新债注册开户安全吗,有没有什么风险?
一键分析硬件/IO/全国网络性能脚本(强推)
Login authentication service
权威发布 | 延安大学2022年教师岗位招聘公告
R语言使用ggplot2可视化泊松回归模型(Poisson Regression)的结果、可视化不同参量组合下的计数结果
View touch analysis
RestCloud ETL与Kettle对比分析
One copy ten, CVPR oral was accused of plagiarizing a lot, and it was exposed on the last day of the conference!
使用 Abp.Zero 搭建第三方登录模块(二):服务端开发
Is it safe to open a stock account with the account manager online??
R language uses ggplot2 to visualize the results of Poisson regression model and count results under different parameter combinations
Complimentary Book Cognitive Control: how does our brain accomplish tasks?
挖财注册开户安全吗,有没有什么风险?
Cluster addslots establish a cluster
Use abp Zero builds a third-party login module (II): server development