Unity--WWW类与协程

本文介绍了Unity中基于C#的协程系统,详细阐述了如何开启和停止协程,以及协程在方法拆分执行中的应用。同时,讲解了WWW类用于简单访问web页面和后台下载资源的功能,如Texture、AudioClip和MovieTexture等,并给出使用协程下载图片并显示在UI上的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

协程: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(白色区域)上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值