可以在程序运行后,下载图片、文本、视频等并显示在ui上或者存到本地等...
也可以在摄像机或者物体上播放视频........///下载速度可能巨慢,不建议下载视频
建一个简单的UI,画布加两个图片.......
注意:下载⽅法必须是协程⽅法!!
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.IO;
using UnityEngine.Video;
public class WWWDemo : MonoBehaviour {
[Header("URL")]
public string url = "、、、、、、、、填个地址";
[Header("展示图片")]
public RawImage rawImage;
[Header("展示图片")]
public Image image;
private AudioSource aud;
private VideoPlayer videoPlayer;
private void Awake()
{
aud = GetComponent<AudioSource>();
videoPlayer = GetComponent<VideoPlayer>();
}
private void Start()
{
//StartCoroutine(DownloadText());
//StartCoroutine(DownloadTexture());
//StartCoroutine(DownloadAudio());
//StartCoroutine(DownloadMovieTexture());
//StartCoroutine(DownloadBytes());
StartCoroutine(DownloadAndPlayVideo());
}
IEnumerator DownloadText()
{
//创建WWW对象,并传入URL
WWW www = new WWW(url);
//等待www下载完毕
yield return www;
Debug.Log("<color=blue>" + www.text + "</color>");
}
IEnumerator DownloadTexture()
{
WWW www = new WWW(url);
yield return www;
Texture texture = www.texture;
texture.name = "Gril";
//Image:Sprite RawImage:Texture
//将下载好的图片,用RawImage渲染出来
rawImage.texture = texture;
//将纹理转换为精灵并设置到Image
image.sprite = Sprite.Create(
www.texture,
new Rect(0, 0,
www.texture.width,
www.texture.height),
Vector2.zero);
//调整RawImage的宽高
rawImage.GetComponent<
RectTransform>().sizeDelta
= new Vector2(
www.texture.width,
www.texture.height);
//调整Image的宽高
image.GetComponent<
RectTransform>().sizeDelta
= new Vector2(
www.texture.width,
www.texture.height);
}
IEnumerator DownloadAudio()
{
WWW www = new WWW(url);
yield return www;
//获取下载的声音片段
AudioClip clip = www.GetAudioClip();
//添加到AudioSource
aud.clip = clip;
//播放
aud.Play();
}///DownloadAudio()里面播放视频和声音现在应该是用不了的
IEnumerator DownloadMovieTexture()
{
WWW www = new WWW(url);
while(!www.isDone)
{
//打印进度
Debug.Log("进度: " + www.progress);
//没有在线完毕,继续等待
yield return null;
}
//获取下载好的MovieTexture
MovieTexture movie = www.GetMovieTexture();
//将视频放置在RawImage
rawImage.texture = movie;
//将声音放置到AudioSource
aud.clip = movie.audioClip;
//播放画面
movie.Play();
//播放声音
aud.Play();
}
IEnumerator DownloadBytes()
{
WWW www = new WWW(url);
while (!www.isDone)
{
//打印进度
Debug.Log("进度: " + www.progress);
//没有在线完毕,继续等待
yield return null;
}
//将比特流写入本地
File.WriteAllBytes(Application.dataPath + "/Resources/demo.mp4", www.bytes);
}
IEnumerator DownloadAndPlayVideo()
{
//从Resource里加载视频文件
VideoClip video = Resources.Load<VideoClip>("demo");
if(video == null)
{
//下载该视频到Resources文件夹
yield return StartCoroutine(DownloadBytes());
//等一帧
yield return new WaitForEndOfFrame();
//重新Load
video = Resources.Load<VideoClip>("demo");
}
//设置视频片段
videoPlayer.clip = video;
//播放
videoPlayer.Play();
}这个可以用
}