Unity--WWW类与协程

来源:互联网 发布:ie11浏览器修复软件 编辑:程序博客网 时间:2024/06/11 03:46

协程:Unity的协程系统是基于C#的一个简单而强大的接口,是可以把一个方法拆分成多次执行的一种接口

协程的开启和停止:
通过传入方法开启协程:StartCoroutine(ShowTime());
通过传入字符串类型的方法名称开启协程:StartCoroutine(“ShowTime”);
停止协程:StopCoroutine(“ShowTime”);

**StopCoroutine只能停止以字符串方式开启的协程

WWW

可以简单的访问web页面
是一个小工具模块检索url的内容;
后台下载通过调用WWW(url),返回一个新的WWW对象;
通过检查isDone属性来查看是否已经下载完成。

属性 描述 texture 下载到的图片 audioClip 下载到的音频 movie 下载到的视频 bytes 下载到的比特数组 text 下载道的Web文字 isDone 下载是否完毕 progress 当前下载进度 url 下载地址

图片资源类:Texture
声音资源类:AudioClip
视频资源类:MovieTexture


例:用协程下载一张图片并显示在UI上

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using System.IO;using UnityEditor;public class XcTestScripts : MonoBehaviour {    public RawImage rawImg;//用来显示下载图片或视频    string imgPath;    void Start()    {        //保存下载的图片        imgPath = Application.dataPath+"/Resources/yourimg.jpg";    }    //协程方法    //片段式的执行方法体    //遇到yield return 结束当前片段    //协程方法都没有返回值    //方法名称前加IEnumerator    IEnumerator DownLoadImg()    {        string url ="需要下载的图片地址";        WWW ww = new WWW (url);        //判断是否下载完成        while (ww.isDone == false){            Debug.Log(ww.progress);//下载进度            yield return 0;        }        File.WriteAllBytes(imgPath,ww.bytes);        AssetDatabase.Refresh();//刷新本地文件        DisplayImg();//显示图片    }    void DisplayImg()    {        //判断图片是否已经存        if(File.Exists(imgPath)){            //存在则显示图片            rawImg.texture = Resources.Load("yourimg") as Texture;        }else{            //不存在则下载图片            StartCoroutine(DownLoadImg());        }    }    //在外部搭建好UI,关联按钮事件    public void Download()    {        DisplayImg();    }}

这里写图片描述

功能关联成功后,点击下载图片或视频就会显示在RawImage(白色区域)上。

原创粉丝点击