利用空余时间写一下网络下载资源使用,进行熟悉一些UnityWebRequest,unity已经抛弃了WWW,这里很简单只需要把脚本挂载就行,所有的界面操作都通过代码实现。 资源的下载,删除都做了相应的操作文章来源:https://www.toymoban.com/news/detail-538128.html
文章来源地址https://www.toymoban.com/news/detail-538128.html
using System.Collections;
using System.IO;
using UnityEditor;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Video;
namespace AssetDatabaseTest
{
public class UnityWebRequestTest : MonoBehaviour
{
private void Start()
{
//下载视频
StartCoroutine(Download());
// DonLoadImage
StartCoroutine(DonLoadImage());
}
IEnumerator Download()
{
var goTest = new GameObject
{
name = "UnityWebRequest"
};
var unityWebRequest = UnityWebRequest.Get("https://klxxcdn.oss-cn-hangzhou.aliyuncs.com/histudy/hrm/media/bg3.mp4");
yield return unityWebRequest.SendWebRequest();
if (unityWebRequest.error!=null)
{
Debug.Log("通信中");
yield return unityWebRequest;
}
var downloadHandler=unityWebRequest.downloadHandler;
if (!downloadHandler.isDone)
{
Debug.Log("下载中");
yield return downloadHandler;
}else
{
Debug.Log("下载成功");
var videoPlayer=goTest.AddComponent<VideoPlayer>();
videoPlayer.renderMode = VideoRenderMode.CameraFarPlane;
videoPlayer.targetCamera=Camera.main;
Debug.Log(downloadHandler.data);
// if (!File.Exists(Application.dataPath + "/Resources/YourVideoName.mp4"))
yield return File.WriteAllBytesAsync(Application.dataPath + "/Resources/YourVideoName.mp4",
downloadHandler.data);
AssetDatabase.Refresh();
videoPlayer.clip= Resources.Load<VideoClip>("YourVideoName");
// AssetDatabase.LoadAssetAtPath<VideoClip>(Application.dataPath + "/YourVideoName.mp4");
videoPlayer.Play();
videoPlayer.isLooping = true;
}
}
IEnumerator DonLoadImage()
{
string url = "http://www.baidu.com/img/bdlogo.png";
var unityWebRequest = UnityWebRequestTexture.GetTexture(url);
yield return unityWebRequest.SendWebRequest();
if (unityWebRequest.error != null)
{
Debug.Log("请求中");
yield return unityWebRequest;
}
var downloadHandler = unityWebRequest.downloadHandler;
if (!downloadHandler.isDone)
{
Debug.Log("下载中");
yield return downloadHandler;
}
else
{
Debug.Log("下载完成");
var handlerData = downloadHandler;
yield return File.WriteAllBytesAsync(Application.dataPath + "/Resources/YourImage.png", handlerData.data);
var g= GameObject.CreatePrimitive(PrimitiveType.Capsule);
g.GetComponent<MeshRenderer>().sharedMaterial = new Material( g.GetComponent<MeshRenderer>().sharedMaterial);
// g.GetComponent<MeshRenderer>().sharedMaterial.color=Color.blue;
AssetDatabase.Refresh();
g.GetComponent<MeshRenderer>().sharedMaterial.mainTexture=
Resources.Load<Texture>("YourImage");
}
yield return null;
}
private void OnDestroy()
{
File.Delete( Application.dataPath + "/Resources/YourImage.png");
File.Delete( Application.dataPath + "/Resources/YourVideoName.mp4");
AssetDatabase.Refresh();
}
}
}
到了这里,关于UnityWebRequest下载图片和视频进行使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!