Unity与服务区交互数据

  Unity可能在用的时候使用到登陆等需要与服务器交互数据。今天尝试使用了WWW类和WWWForm类来实现Get请求与Post请求。

1.WWW

  Unity圣典解释:

  WWW会返回一个新的WWW对象。当它被下载,其结果可以从返回对象中获取。这个函数创建和发送一个GET请求,流将自动开始下载响应。流创建之后,你必须等待它完成,然而可以访问已下载的数据。作为一个方面的流可以被中断,因此你可以容易的告诉Unity等待下载完成。你可以检查isDone属性来查看是否已经下载完成,或者yield自动等待下载物体,直到它被下载完成(不会影响游戏的其余部分)。

Variables变量

  • Returns the contents of the fetched web page as a string (Read Only).
    通过网页获取并以字符串的形式返回内容(只读)。
  • Returns the contents of the fetched web page as a byte
    array (Read Only).
    以字节组的形式返回获取到的网络页面中的内容(只读)。
  • Returns an error message if there was an error during the
    download (Read Only).
    返回一个错误消息,在下载期间如果产生了一个错误的话。(只读)
  • Returns a Texture2D generated from the downloaded data
    (Read Only).
    从下载的数据返回生成的一个Texture2D(只读)。
  • Returns a AudioClip generated from the downloaded data
    (Read Only).
    从下载的数据,返回一个AudioClip。(只读)
  • Returns a MovieTexture generated from the downloaded data
    (Read Only).
    从下载的数据,返回一个MovieTexture(只读)。
  • Is the download already finished? (Read
    Only)
    判断下载是否已经完成(只读)?
  • How far has the download progressed (Read
    Only).
    下载进度有多少(只读)?
  • How far has the upload progressed (Read
    Only).
    上传进度有多少(只读)
  • Load an Ogg Vorbis file into the audio clip.
    加载一个Ogg
    Vorbis文件到音频剪辑。
  • The URL of this WWW request (Read Only).
    该WWW请求的URL(只读)。
  • Streams an AssetBundle that can contain any kind of asset
    from the project folder.
    AssetBundle的数据流,可以包含项目文件夹中的任何类型资源。
  • Priority of AssetBundle decompression thread.
    AssetBundle解压缩线程的优先级。

Constructors构造器

  • Creates a WWW request with the given URL.
    用给定的URL创建一个WWW请求。

Functions函数

  • Returns a AudioClip generated from the downloaded
    data (Read Only).
    从下载数据,返回一个AudioClip(只读)。
  • Replaces the contents of an existing Texture2D with an
    image from the downloaded data.
    利用一个从下载数据中的图像来替换现有Texture2D
  • Loads the new web player data file.
    加载新的web播放器数据文件。

Class Functions类函数

    • Encodes string into an URL-friendly
      format.
      字符串编码成一个URL的格式。
    • Decodes string from an URL-friendly
      format.
      从一个URL格式解码字符串。
    • Loads an assetBundle from the cache, or downloads it, in
      case it is not cached.
      从缓存加载一个资源包,如果没有被缓存,或从下载加载。 

2.WWWForm

  辅助类。用来生成表单数据,使用WWW类传递到web服务器。

Variables变量

  • (Read Only) Returns the correct request headers for posting the form using the WWW class.
    (只读)为使用WWW类传递的表单返回一个正确的请求头。
  • (Read Only) The raw data to pass as the POST request body
    when sending the form.
    (只读)在发送表单的时,原始数据作为POST请求发送。

Constructors构造器

  • Creates an empty WWWForm object.
    创建一个空的网页表单对象。

Functions函数

    • Add a simple field to the form.
      添加一个简单的域到表单。
    • Add binary data to the form.
      添加二进制数据到表单。 

3.使用方法

  这里试着从网上下载一个图片替换物体的贴图。

  1. using System;
  2. using UnityEngine;
  3. using System.Collections;using System.Net;public class WWWZ : MonoBehaviour {void Start()
  4. {string path= "http://a3.att.hudong.com/72/37/01200000194734134393377005543_s.jpg";
  5. StartCoroutine(GoForm());
  6. }
  7. IEnumerator GoStart()
  8. {
  9. WWW www = new WWW(path);
  10. yield return www;
  11.  
  12. if (www.isDone)
  13. {
  14. GetComponent<Renderer>().material.mainTexture = www.texture;
  15. }
  16. }
  17. }

接下来是想URL传递表单数据。

  1. using System;
  2. using UnityEngine;
  3. using System.Collections;
  4. using System.Net;
  5. using System.Text;
  6. using LitJson;
  7.  
  8. public class WWWZ : MonoBehaviour {
  9.  
  10. public string url = "http://192.168.16.118:8080/google";//接受表单的地址
  11.  
  12. void Start()
  13. {
  14.  
  15. form = new WWWForm();
  16.  
  17. form.AddField("action","login");
  18. form.AddField("username","abc");
  19. form.AddField("password", "");
  20.  
  21. StartCoroutine(GoForm());
  22.  
  23. }
  24.  
  25. IEnumerator GoForm()
  26. {
  27. WWW w=new WWW(url, form);
  28. yield return w;
  29.  
  30. if (w.error != null)
  31. print(w.error);
  32. else
  33. Debug.Log(“提交成功!”);
  34.  
  35. }
  36. }

当然在可以和服务器简单的下载和提交信息后,我们甚至可以向服务器传递或从服务器获取xml,Json等信息,方便我们使用。

Unity与服务区交互数据的更多相关文章

  1. EventBus实现activity跟fragment交互数据

    最近老是听到技术群里面有人提出需求,activity跟fragment交互数据,或者从一个activity跳转到另外一个activity的fragment,所以我给大家介绍一个开源项目,EventBu ...

  2. Unity与IOS交互

    Unity IOS交互 @By 广州小龙  QQ群:63438968 环境:Mac os 10.9.2  Unity 4.2.1f4   Xcode 5.0.2 Unity IOS的交互我写过一个教程 ...

  3. [Unity3D]Unity3D游戏开发之Unity与Android交互调用研究

    各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.在前一篇文章中,我们研究了Android平台上Unity3D的手势操作并在之前的基础 ...

  4. 利用R语言进行交互数据可视化(转)

    上周在中国R语言大会北京会场上,给大家分享了如何利用R语言交互数据可视化.现场同学对这块内容颇有兴趣,故今天把一些常用的交互可视化的R包搬出来与大家分享. rCharts包 说起R语言的交互包,第一个 ...

  5. Unity与Android交互-Unity接入高德地图实现定位以及搜索周边的功能(使用Android Studio)详细操作

    刚进公司给安排的任务就是Unity接入高德地图,算是踩了不少坑总算做出来了,抽点时间写个博客记录一下 废话不多说 先上效果图 获取定位并根据手机朝向显示周边信息            使用的Unity ...

  6. SpringBoot系列: 与Spring Rest服务交互数据

    不管是单体应用还是微服务应用, 现在都流行Restful风格,  下图是一个比较典型的使用rest的应用架构, 该应用不仅使用database数据源, 而且用到了一个Weather微服务, 另一方面, ...

  7. 【开源.NET】 轻量级内容管理框架Grissom.CMS(第二篇前后端交互数据结构分析)

    这是 CMS 框架系列文章的第二篇,第一篇开源了该框架的代码和简要介绍了框架的目的.作用和思想,这篇主要解析如何把sql 转成标准 xml 配置文件和把前端post的增删改数据规范成方便后台解析的结构 ...

  8. ifconfig源码分析之与内核交互数据

    <ifconfig源码分析之与内核交互数据>本文档的Copyleft归rosetta所有,使用GPL发布,可以自由拷贝.转载,转载时请保持文档的完整性.参考资料:<Linux设备驱动 ...

  9. Unity加载二进制数据

    [Unity加载二进制数据] The first step is to save your binary data file with the ".bytes" extension ...

随机推荐

  1. linux下构建SVN

    1. 安装subversion#yum -y install subversion2. 安装好了之后 新建一个svn目录#mkdir /home/svn3. 新建两个版本仓库#svnadmin cre ...

  2. 启动memcache

    "D:\SOFT\memcached-1.4.5-amd64\memcached-amd64\memcached.exe"

  3. 清空oracle session

    select 'alter system kill session '''||sid|| ','||serial#||''';' from v$session where username =' ';

  4. Keil开发的ARM程序main函数之前的汇编分析

    Keil开发的ARM程序main函数之前的汇编分析 ——BIN文件中RW段的数据移动 系统平台: STM32系列STM32F103ZE,512KB内部FLASH,64KB片内存储; FLASH地址范围 ...

  5. VM中Centos安装

    本例中的vm是12版本的. VM设置 首先是vm的设置,相当于是买电脑的过程 首先文件 -> 新建虚拟机 然后 然后 然后 然后 然后 然后 然后 然后 然后 然后 然后 然后 然后 点击完成之 ...

  6. oracle之DQL

    一.单表查询 语法:select * from table where 条件 group by 分组 having 过滤分组 order by 排序 --查询平均工资低于2000的部门的最大工资和平均 ...

  7. mysql启动错误处理

    1.当启动MySQL时,报如下错误 [ERROR] Plugin 'InnoDB' init function returned error.[ERROR] Plugin 'InnoDB' regis ...

  8. 增强for循环和迭代器

    package example6; import java.util.ArrayList;import java.util.Iterator;import java.util.List; class ...

  9. 可以提高php编程效率的20个要点

    整理了可以提高php编程效率的20个要点,发博客记录一下,需要的朋友可以参考.    1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id' ...

  10. 基于原生JS封装数组原型上的sort方法

    基于原生JS封装数组原型上的sort方法 最近学习了数组的原型上内置方法的封装,加强了用原生JS封装方法的能力,也进一步理解数组方法封装的过程,实现的功能.虽然没有深入底层,了解源码.以下解法都是基于 ...