当前位置: 首页 > backend >正文

【Unity网络编程知识】Unity的 WWW相关类学习

一、WWW类

1、WWW类的作用

        WWW是Unity提供的简单的访问网页的类,可以通过该类下载和上传一些数据,在使用http协议时,默认的请求类型是Get,如果想要Post上传,需要配合WWWFrom类使用

主要支持的协议

  • 1.http://和https://超文本传输协议
  • 2.ftp://文件传输协议(但仅限于匿名下载)
  • 3.file://本地文件传输协议,可以使用该协议异步加载本地文件(PC、IOS、Android都支持)

注意

  • 1.该类一般配合协同程序使用
  • 2.该类在较新unity版本中会提示过时,但是仍可以使用,新版本将其功能整合进了UnityWebRequest类

2、WWW类的常用方法

2.1 WWW() 构造函数,用于创建一个WWW请求

WWW www = new WWW("http://192.168.1.25:8000/HttpServer/http上传的文件.jpg");

 2.2 GetAudioClip() :从下载数据返回一个音效切片AudioClip对象

www.GetAudioClip();

2.3 LoadImageIntoTexture() :用下载数据中的图像来替换现有的一个Texture2D对象

        Texture2D tex = new Texture2D(100, 100);www.LoadImageIntoTexture(tex);

 2.4 LoadFromCacheOrDownload() :从缓存加载AB包对象,如果该包不在缓存则自动下载存储到缓存中,以便以后直接从本地缓存中加载

WWW.LoadFromCacheOrDownload("a", 1);

3、WWW类的常用变量

3.1 assetBundle:如果加载的数据是AB包,可以通过该变量直接获取加载结果

www.assetBundle;

3.2 bytes:以字节数组的形式获取加载到的内容

www.bytes

3.3 bytesDownloaded:过去已下载的字节数

www.bytesDownloaded

3.4 error:返回一个错误消息,如果下载期间出现错误,可以通过它获取错误信息

www.error != null

3.5 isDone:判断下载是否已经完成

www.isDone

3.6 progress:下载进度

www.progress

3.7 text:如果下载的数据是字符串,以字符串的形式返回内容

www.text

3.8 texture:如果下载的数据是图片,以Texture2D的形式返回加载结果

www.texture

4、利用www类来异步下载或加载文件

4.1 下载HTTP服务器上的内容

    StartCoroutine(DownLoadHttp());IEnumerator DownLoadHttp(){//1.创建WWW对象WWW www = new WWW("https://t7.baidu.com/it/u=2604797219,1573897854&fm=193&f=GIF");//2.就是等待加载结束//yield return www;while (!www.isDone){print(www.bytesDownloaded);print(www.progress);yield return null;}print(www.bytesDownloaded);print(www.progress);//3.使用加载结束后的资源if (www.error == null){//www.textureimage.texture = www.texture;}else{Debug.LogError(www.error);}}

4.2 下载FTP服务器上的内容(FTP服务器一定要支持匿名账户)

    StartCoroutine(DownLoadFtp());IEnumerator DownLoadFtp(){//1.创建WWW对象WWW www = new WWW("ftp://127.0.0.1/计算机网络思维导图.png");//2.就是等待加载结束//yield return www;while (!www.isDone){print(www.bytesDownloaded);print(www.progress);yield return null;}print(www.bytesDownloaded);print(www.progress);//3.使用加载结束后的资源if (www.error == null){//www.textureimage.texture = www.texture;}else{Debug.LogError(www.error);}}

4.3 本地内容加载(一般移动平台加载数据都会使用该方式)

    StartCoroutine(DownLoadLocal());IEnumerator DownLoadLocal(){//1.创建WWW对象WWW www = new WWW("file://" + Application.streamingAssetsPath + "/test.png");//2.就是等待加载结束//yield return www;while (!www.isDone){print(www.bytesDownloaded);print(www.progress);yield return null;}print(www.bytesDownloaded);print(www.progress);//3.使用加载结束后的资源if (www.error == null){//www.textureimage.texture = www.texture;}else{Debug.LogError(www.error);}}

二、WWWForm类

1、WWWForm类的作用

  • 如果想要使用wwW上传数据时,就需要配合wwWFrom类进行使用了,而WWWFrom主要就是用于集成数据的,我们可以设置上传的参数或者2进制数据,当结合wwWFrom上传数据时,它主要用到的请求类型是Post,它使用Http协议进行上传处理

注意:

  • 使用WWW结合WWWFrom上传数据一般需要配合后端程序制定上传规则

2、WWWFrom类的常用方法和变量

2.1 WWWForm() :构造函数

WWWForm data = new WWWForm();

2.2 AddBinaryData() :添加二进制数据

data.AddBinaryData()

2.3 AddField() :添加字段

        data.AddField("Name", "MrTang", Encoding.UTF8);data.AddField("Age", 99);

3、WWW结合wwWForm对象来异步上传数据

    StartCoroutine(UploadData());IEnumerator UploadData(){WWWForm data = new WWWForm();data.AddField("Name", "MrTang", Encoding.UTF8);data.AddField("Age", 99);WWW www = new WWW("http://192.168.1.25:8000/HttpServer/", data);yield return www;if(www.error == null){print("上传成功");}else{print("上传失败");}}

http://www.xdnf.cn/news/7410.html

相关文章:

  • 【免费下载】2025年全国地铁路线及站点矢量数据
  • 关于IntegerCache.cache的介绍
  • 【密码学——基础理论与应用】李子臣编著 第十二章 SM3密码杂凑算法 课后习题
  • Ubuntu 远程桌面配置指南
  • 数据要素及征信公司数据要素实践
  • 探究:霍尔开关,在电动晾衣架丝滑升降与卷发器智能温控中的关键作用
  • 已解决——如何让网站实现HTTPS访问?
  • 前端页面 JavaScript数据交互
  • 鸿蒙 系统-安全-程序访问控制-应用权限管控
  • ES6详解
  • Linux中的DNS的安装与配置
  • flow-两种SharingStarted策略的区别示例
  • kotlin Flow的技术范畴
  • 解决软件连接RabbitMQ突发System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接异常
  • RabbitMQ-高级
  • nginx 漏洞修复 CVE-2024-7347 CVE-2025-23419
  • 深入理解蒙特卡洛树搜索(MCTS):python从零实现
  • SQL:多列匹配(Multiple-column Matching)
  • Mybatis操作数据库(2)
  • 看之前熟悉双亲委派加载机制,看之后了解双亲委派加载机制
  • HarmonyOS实战:自定义时间选择器
  • 仿微钙化结石体模的详细讲解
  • 学习源码?
  • 详解受约束的强化学习(一、入门学习)
  • 【深度学习新浪潮】什么是多模态大模型?
  • 什么是Monorepo(单体仓库)(monolithic repository)
  • 隨筆 20250519 基于MAUI Blazor整合SQLite数据库与Star打印机的详细步骤
  • 【机器学习】线性回归和损失函数
  • WebSphere Application Server(WAS)8.5.5教程第五讲
  • Python网络爬虫入门指南