unity3d中的http通信
转载 http://blog.csdn.net/mfc11/article/details/8188785的博客,如果侵权,请留言我及时删除!
前言
Unity3d 是一个跨平台的引擎,在移动互联网浪潮之中,尤其是移动游戏3d方向上,Unity3d 毫无疑问是最耀眼的明星。Unity3d的http通信很简单,也非常好用,下面通过http和php sever交互来简单介绍一下。
http 提交数据原理
http 协议通过 url来获取和提交数据 。提交数据的方式 有两种,一种是get方法,一种是post方法。get一般用于告诉服务器把满足参数的数据发送给回来。
例如:get 的html代码如下:
- <form action="search.php" method ="GET">
- <username:<inputtypeinputtype="text"name="user"/><br>
- <password:<inputtypeinputtype="password "name="pwd"/><br>
- <input type="submit"value="login"/>
- </form >
post一般是将数据发送给服务器,服务器将这些数据进行处理,比如说存储到数据库。
例如:post的html 代码如下:
- <form action="login.php" method ="POST" >
- <username:<inputtypeinputtype="text"name="user"/><br>
- <password:<inputtypeinputtype="password "name="pwd"/><br>
- <input type="submit"value="login"/>
- </form >
其实区别就是提交的方式不一样,点击login按钮后,浏览器地址栏里分别显示如下:
get方法url为:http://127.0.0.1/serach.php?user=hortor&pwd=123
post方法url为:http://127.0.0.1
PHP服务端接收数据方法
服务端针对这两种方式响应的有两种方式:
get方法接收数据的方法为 $_GET[user],来接收客户端发送的user的值。
post方法接收数据的方法为 $_POST[user]也是用来接收客户端变量user的值。
UNITY WWW类使用方法
unity www 类同样对应两种提交数据的方式,常用的两个构造函数为:
static function WWW (url : String) : WWW
static function WWW (url : String, form : WWWForm) : WWW
第一个函数是通过get方法向服务器发送数据,第二个是用post提交数据,其中WWWForm有个方法叫:AddField(agr : string, value : string),来添加参数。
get例子:
- #pragma strict
- privatevar url : String = "127.0.0.1/login.php?user=test&pwd=123";
- function Start () {
- var getData : WWW = WWW(url);
- yield getData;
- if(getData.error != null) {
- Debug.Log(getData.error);
- }
- else {
- Debug.Log(getData.text);
- }
- }
post例子:
- #pragma strict
- privatevar url : String = "127.0.0.1/login.php";
- function Start () {
- var form : WWWForm = new WWWForm();
- form.AddField("user", "test");
- form.AddField("pwd", "123");
- var getData : WWW = WWW(url, form);
- yield getData;
- if(getData.error != null) {
- Debug.Log(getData.error);
- }
- else {
- Debug.Log(getData.text);
- }
- }
其中yield 这个方法是程序每一帧调用一次,当getData 执行完成,返回结果,这就相当于是异步请求数据。WWW 类有几个常用的静态变量,分别为:
1、WWW.text 返回从网页得到数据,类型为string。
2、WWW.error 返回错误信息,比如说超时,网络连接错误等问题。
unity3d中的http通信的更多相关文章
- unity3d中的http通信 二
转载自 http://www.cnblogs.com/88999660/archive/2013/03/11/2954279.html 如果侵权,请及时通知我删除! using System; usi ...
- unity3D中使用Socket进行数据通信(一)
公司今年3D产品的工作中心主要集中在提高产品深度上,通过对竞争产品的分析,发现我们的缺陷在于多人在线与后台管理部分,多人在线使用unity自带的Network能够搞定,后台部分前段时间主要研究了下Sq ...
- Android中的HTTP通信
前言:近期在慕课网学习了慕课网课程Android中的HTTP通信,就自己总结了一下,其中参考了不少博文,感谢大家的分享. 文章内容包括:1.HTTP简介2.HTTP/1.0和HTTP/1.1之间的区别 ...
- 【Unity3d游戏开发】Unity3D中的3D数学基础---向量
向量是2D.3D数学研究的标准工具,在3D游戏中向量是基础.因此掌握好向量的一些基本概念以及属性和常用运算方法就显得尤为重要.在本篇博客中,马三就来和大家一起回顾和学习一下Unity3D中那些常用的3 ...
- Unity3D中可中途释放的单例
Unity3D中可中途释放的单例 使用静态类,静态变量的坏处是从程序加载后就一直占用内存,想要释放比较麻烦,可是之前使用的单例,没有提供释放的方法,那是不是也同静态的一样直到程序结束菜释放?那单例的好 ...
- 图文详解Unity3D中Material的Tiling和Offset是怎么回事
图文详解Unity3D中Material的Tiling和Offset是怎么回事 Tiling和Offset概述 Tiling表示UV坐标的缩放倍数,Offset表示UV坐标的起始位置. 这样说当然是隔 ...
- unity3d中 刚体(Rigidbody) 碰撞体(Collider) 触发器(Is Trigger)
刚体(Rigidbody)的官方(摘自Unity3d的官方指导书<Unity4.x从入门到精通>)解释如下: Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可 ...
- Unity3D中Update()与FixedUpdate()的区别
Unity3D中Update()与FixedUpdate()的区别是什么呢?从字面上理解,它们都是在更新时会被调用,并且会循环的调用.但是Update会在每次渲染新的一帧时,被调用.而FixedUpd ...
- Unity3D中C#和js方法相互调用
通过查找资料,Unity3D中C#和js要相互调用彼此的方法,js文件必须放在"Standard Assets". "Pro Standard Assets" ...
随机推荐
- Android之打开闪光灯关键代码
在AndroidManifest中注册相应的权限: <uses-permission android:name="android.permission.FLASHLIGHT" ...
- node.js 安装
http://my.oschina.net/zhangdapeng89/blog/52793 windows 自带的 ims文件安装后 有 安装npm 点击bat文件可自动安装 npm 1安装 nod ...
- [React] Linting React JSX with ESLint (in ES6)
ESLint is a JavaScript linter (static analysis tool) that offers full support for ES6, JSX, and othe ...
- 再回首,Java温故知新(十):数组
数组是程序中用来存储同一类型值的集合,基本所有编程语言中都有这种类型存在.声明数组时需要指出数组类型和数组变量名,初始化后数组的长度不可变,使用过程中通过下标来访问数组中的元素,示例代码如下: int ...
- Myeclipse快捷键的设置
- 使用CDN加载jQuery类库后备代码
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></ ...
- Weex 初始
1.一旦数据和模板绑定,数据的变化会立即体现在前台的变化 <template> <container> <text style="font-size: {{si ...
- 正则表达式匹配(node.js)
参考文档如下: http://blog.csdn.net/huiguixian/article/details/6131048 http://www.91xueke.com/2013/04/05/30 ...
- List指定字段赋特定值(非循环) asp.net
List<Cart> cartd=cartd.Where(p => (p.Id= "123").Length > -1).ToList(); 把Id的值都赋 ...
- 解决vim不能使用方向键和退格键问题
1.使用vi命令时,不能正常编辑文件,使用方向键时老是出现很多字母,或者退格键却变成方向键的功能 只要重装一下vi的依赖包即可完美解决vi编辑器方向键变字母的问题.rpm -e vim-enhance ...