Unity~ WWW类

什么是WWW类

www就是网络工具类,Unity用于从网络上下载需要的文件,包括音频,视频,图片等文件的工具类.
HTTP 超文本传输协议,网络传输协议,服务器之间文件传输的规范
HTTP中的方法
<1>GET 获取服务器数据
<2>POST 上传数据到服务器
<3>PUT 修改数据
<4>DELETE 删除数据

www路径:
<1>http://网址 (网络请求,网络传输协议)
<2>https://网址 (网络请求,网络传输协议)
<3>file://本地文件地址 (本地请求,本地文件传输协议)

使用WWW类下载网络视频并在Unity中播放

<一般作为游戏的CG动画,和游戏中的广告植入等>

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using UnityEngine.UI;
using System;

public class VideosScript : MonoBehaviour {

    RawImage _immage;
    //定义变量路径
    string vedioURL;
    //本地路径,前面要三个斜杠.前两个表示本地 后一个斜杠表示电脑中的路径
    //string _voideoURL = "file:///C:/Users/aixia/Desktop";
    void Start () {
        //视频路径 (这里博主没找到适合的视频网站。。。。。倍感失败)
        vedioURL = "https://www.bilibili.com/5de0d107-7802-4c24-9473-3a085e451f32";

        //图片路径
         string url = "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=1345734636,1096966958&fm=26&gp=0.jpg";
        //开启协程 下载图片
         StartCoroutine (IEPhoto (url));
        //开启协程下载视频
        //StartCoroutine (IEvedio (vedioURL));
    }

    #region 图片下载


    //用协程异步加载视频,一般协程都与资源加载连用
    IEnumerator IEPhoto(string url)
    {
        //创建www类,并把路径作为参数传给www的构造方法
        WWW www = new WWW (url);
        //www.isDone  该方法返回值为bool 加载完成的时候返回true
        while (!www.isDone)
        {
            //该方法用于获取下载进度,值为0到1
            print( www.progress.ToString());
            yield return www;
            if (LoadImage("MyImage"))
            {
                //File.WriteAllBytes方法将所有从网络上下载的文件保存在本地的位置,并重命名为MyImage.jpg;
                //www.bytes,下载的文件
                File.WriteAllBytes (Application.dataPath + "/Resources/MyImage.jpg", www.bytes);
                //刷新Asset文件夹
                UnityEditor.AssetDatabase.Refresh ( );
            }
        }
    }
    //该方法用于判断Resources文件夹中是否存在该图片
    private bool LoadImage (string texturename)
    {       
        //如果存在返回false 就不去下载
        if (Resources.Load(texturename) != null)
        {
            Debug.Log ("图片已经存在");
            return false;
        }
        else
        {
            //如果不存在返回true重新下载
            Debug.Log ("图片不存在,开始下载");
            return true;
        }

    }

    #endregion

    //视频下载

    IEnumerator IEvedio(string url)
    {
        WWW www = new WWW (url);
        while (!www.isDone)
        {
            if (www.progress<1)
            {
                yield return 0;
                print ( www.progress);
            }
            yield return www;

            File.WriteAllBytes (Application.dataPath+"/Resources/MyVedio.mp4",www.bytes);
            UnityEditor.AssetDatabase.Refresh ( );
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值