unity3d 切换网络_Unity3d新网络请求方式UnityWebRequest详解
Unity将要逐步放弃www网络请求api,新的api请求方式来临:UnityWebRequestThe,也正是本篇文章要给大家介绍的重点,那就是UnityWebRequestThe的使用详解。
旧的 www :https://docs.unity3d.com/ScriptReference/WWW.html
新的 UnityWebRequestThe :https://docs.unity3d.com/ScriptReference/Networking.UnityWebRequest.html
using UnityEngine;
using UnityEngine.Experimental.Networking;
using System.Collections;
class MyBehaviour: public MonoBehaviour {
void Start() {
StartCoroutine(GetText());
}
IEnumerator GetText() {
using(UnityWebRequest www = UnityWebRequest.Get("http://www.my-server.com")) {
yield return www.Send();
if(www.isError) {
Debug.Log(www.error);
}
else {
// Show results as text
Debug.Log(www.downloadHandler.text);
// Or retrieve results as binary data
byte[] results = www.downloadHandler.data;
}
}
}
}
这是Unity5.4 中提供的 API, 为了代替WWW 以满足今天的 HTTP 通信的需求. 看官方文档,Unity5.2, 5.3 ,5.4 也是会有的!
UnityWebRequest 架构
UnityWebRequest 由三个元素组成。
◾UploadHandler 处理数据 将数据发送到服务器 的对象
◾DownloadHandler 从服务器接收数据 的对象
◾UnityWebRequest 负责 HTTP 通信流量控制来管理上面两个对象的对象。
来说明这些对象之间的关系,如下所示。
基本用法
比较UnityWebRequest 和 WWW 类的基本用法。
GET
www通过url的写法:
using UnityEngine;
using System.Collections;
class MyBehaviour : public MonoBehaviour {
void Start() {
StartCoroutine(GetText());
}
IEnumerator GetText() {
WWW request = new WWW("http://example.com");
yield return request;
if (! string .IsNullOrEmpty(request.error)) {
Debug.Log(request.error)
} else {
//
if (request.responseHeaders.ContainsKey("STATUS") &&
request.responseHeaders["STATUS"] == 200) {
//
string text = request.text;
//
byte [] results = request.bytes;
}
}
}
}
换成UnityWebRequest的书写方式:
using UnityEngine;
using System.Collections;
using UnityEngine.Experimental.Networking;
//
// using UnityEngine.Networking;
class MyBehaviour : public MonoBehaviour {
void Start() {
StartCoroutine(GetText());
}
IEnumerator GetText() {
UnityWebRequest request = UnityWebRequest.Get("http://example.com");
//
// UnityWebRequest request = new UnityWebRequest("http://example.com");
//
// request.method = UnityWebRequest.kHttpVerbGET;
//
yield return request.Send();
//
if (request.isError) {
Debug.Log(request.error);
} else {
if (request.responseCode == 200) {
//
string text = request.downloadHandler.text;
//
byte [] results = request.downloadHandler.data;
}
}
}
}
如果想多了解点UnityWebRequestThe的内容,还可以去官看看。
相关文章:

PoW工作量证明
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 PoW是Proof of Work的缩写,即工作量证明的意思。在《拜占庭将军问题》中介绍过,比特币系统中引入了“工作量”的概念&#…

zookeeper 集群安装
一、ZooKeeper相关概念简介:ZooKeeper是一个开源的、分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服…

python queue 多进程_python中的Queue与多进程(multiprocessing)
最近接触一个项目,要在多个虚拟机中运行任务,参考别人之前项目的代码,采用了多进程来处理,于是上网查了查python中的多进程一、先说说Queue(队列对象)Queue是python中的标准库,可以直接import 引用,之前学习…

postman测试上传文件
输入url:http://127.0.0.1:8081/uploadfile 选择post方式 选择body 选择form-data,text改为file 输入key:file ,value:选择文件 send即可 转载于:https://www.cnblogs.com/shimh/p/6094410.html

区块链资产安全攻略
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 本文从钱包、密码、软件、备份、交易所、习惯几个方面给出一些指引。 钱包 每个钱包在熟练使用之前,请用小额测试。 有条件购买硬件钱…

win10安装docker并结合Idea2018.1部署springboot项目
一、准备工作 1.、工具:win10,idea2018,maven3.5,jdk8 二、win10安装docker 1、win10安装docker:http://www.runoob.com/docker/windows-docker-install.html 2、安装完毕后,点击小鲸鱼,选择set…

在桌面右键菜单,停止工作,并提示“资源管理器停止工作”等情况。
在配置文件中,找到右键管理菜单,然后删除NvCp开头的扩展项有问题,去掉就完事了。转载于:https://www.cnblogs.com/wangfengderizi/p/6094446.html

ue4cmd怎么调用_[UE4,automation]UE4批渲染cmd篇
之前做项目的过程中,有一部分工作是在UE4里制作输出小短片。由于要完成的量比较大,所以研究了一些批渲染的方法。逻辑上跟以前在maya里用batch render差不多,不过UE4这边的设置相对繁琐一点点。本文讲解了在不打开UE4软件的前提下,…

区块链将带来怎样的应用?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 在上一篇文章中,咱们聊到了区块链技术正在与大数据、云计算、物联网以及人工智能这些技术链接,随时可能碰撞出技术创新的火…

【Spark】Spark2.x版的新特性
一、API 1. 出现新的上下文接口:SparkSession,统一了SQLContext和HiveContext,并且为SparkSession开发了新的流式调用的configuration API 2. 统一了DataFrame和DataSet。DataFrame相当于DataSet[Row],以及DataSet的增强聚合API 3…

python基础主要内容_python基础—python的介绍
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.这是因为计算机不能直接认识并…

Web Serveice服务代理类生成及编译
一、生成代理类 对于web service服务和wcf的webservice服务,我们都可以通过一个代理类来调用。 怎么写那个代理类呢?通过一个工具生成即可!!微软为我们提供了一个wsdl.exe的Web服务描述语言工具,wsdl.exe从 WSDL 协定文…

生成器/迭代器 和 函数的递归
生成器 一个包含yield关键字的函数就是一个生成器函数。yield可以为我们从函数中返回值,但是yield又不同于return,return的执行意味着程序的结束,调用生成器函数不会得到返回的具体的值,而是得到一个可迭代的对象。每一次获取这个…

CDN -- 集合
weui https://cdnjs.cloudflare.com/ajax/libs/weui/0.4.3/style/weui.min.css 百度静态资源库 http://cdn.code.baidu.com/转载于:https://www.cnblogs.com/xuange306/p/6102407.html

python清华大学出版社第三章课堂作业的答案_Python程序设计清华大学出版社董付国第3章选择与循环题库.ppt...
3.5 综合运用 例2:输出序列中的元素。 a_list[a, b, mpilgrim, z, example] for i,v in enumerate(a_list): print 列表的第, i1, 个元素是:, v 3.5 综合运用 例3:求1~100之间能被7整除,但不能同时被5整除的所有整数 。 for i in …

以太坊私链入门
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载 目录 背景软件安装与配置 2.1. Ubuntu 2.1.1. 安装 geth 2.1.2. 安装 solc 2.2. Windows 2.3. Mac OS 2.4. 编译安装创世区块 3.1. 初始化创世区块 …

数据结构(十)栈的作用--大数的加法运算
一、大数加法的定义 在Java中,整数类型有四种,byte(8位)、short(16位)、int(32位)、long(64位)。 其中,int类型为32为,也就是说最大的…

分布式技术一周技术动态 2016-11-27
分布式系统实践 1. 大数据时代快速SQL引擎-Impala http://dwz.cn/4G9mvt 摘要: 在Dremel论文发表之后,开源社区涌现出了一批基于MPP架构的SQL-on-Hadoop(HDFS)查询引擎,典型代表有Apache Impala、Presto、Apache Drill、Apache HAWQ等,看上去…

vuerouter3种模式_Vue-router的三种传参方式
第一种传递参数:name传参两步完成name传参并显示在模板中;第一在router/index.js中配置name属性,routes: [{path: /,name: HelloWorld,component: HelloWorld},]第二步在src/App.vue接收{{ $route.name }}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~…

以太坊的数据结构
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 以太坊被描述为为一个交易驱动的状态机,它在某个状态下接受一些输入后,会确定的转移到一个新的状态。具体来说,…

(转载)虚幻引擎3--9掌握虚幻技术UnrealScript 预处理器
第九章 – UNREALSCRIPT预处理器9.1概述9.2 MACRO(宏)的基础知识指南 9.1 –您的第一个宏9.3具有参数的宏指南 9.2 – MACRO参数9.4内置宏DEFINE IF/ELSE/ENDIF 实例: IF/ELSE/ENDIF的应用 INCLUDE ISDEFINED/NOTDEFINED 示例: 结合使用 …

springboot添加多数据源连接池并配置Mybatis
springboot添加多数据源连接池并配置Mybatis 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9190226.html May 12, 2018 星期六,那是个晴天,天湛蓝湛蓝的非常干净,仿佛飘过一粒尘埃也能看得清清楚楚,然后就发生…

lua菜鸟教程_Lua 环境安装
Lua 环境安装Linux 系统上安装Linux & Mac上安装 Lua 安装非常简单,只需要下载源码包并在终端解压编译即可,本文使用了5.3.0版本进行安装:curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gztar zxf lua-5.3.0.tar.gzcd lua-5.3.0make …

以太坊智能合约Demo
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战demo示例快速入门,用demo例子深入浅出智…

Java学习笔记七——数组工具类Arrays
数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组。若将里面的方法用熟的话,那开发效率会大大提高。下面介绍其中的方法。 List<T> asList(T... a) 作用:将指定数组或数组元素,转换成固定大小的List。…

c++窗口管理系统是什么_优秀的食堂管理系统让你对校园生活更充满希望
面对今年疫情环境下的种种困难,各大高校纷纷根据情况采取不同的措施,应对开学的各种难题。解决返校学生就餐就是一大难点。学校后勤工作人员少之又少,开设的食堂窗口也供不应求。这也直接导致了后勤人员懒散,食堂阿姨给菜“手抖”…

ACM训练小结-2018年6月16日
今天题目情况如下:A题:线段树XOR性质。情况:由于写法问题,调试困难,浪费大量时间。B题:(对所有满足i mod pq,求a[i]之和),无修改,直接上n*sqrt(n)…

加密货币的本质
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 去年,比特币暴涨,其他币也像雨后春笋一样冒出来,已经有1000多种了。 很多人都在问,加密货币&#…

「2018山东一轮集训」 Tree
为什么出题人这么毒瘤啊??!!一个分块还要带log的题非要出成n<2*1e5。。。。。。。 为了卡过最后两个点我做了无数常数优化,包括但不限于:把所有线段树改成 存差分的树状数组;把树剖求LCA的极…

mysql 表空间收缩_mysql表碎片清理和表空间收缩
mysql表碎片清理和表空间收缩(即清理碎片后report_site_day.ibd文件磁盘空间减小,该方案基于独立表空间存储方式)OPTIMIZETABLE [tablename],当然这种方式只适用于独立表空间清除碎片的优点:降低访问表时的IO,提高mysql性能,释放表空间降低磁盘空间使用率OPTIMIZE TABLE ipvacl…