我是靠谱客的博主 热情钢笔,最近开发中收集的这篇文章主要介绍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 ( );
        }
    }
}

最后

以上就是热情钢笔为你收集整理的Unity~ WWW类的全部内容,希望文章能够帮你解决Unity~ WWW类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部