[Unity3d]unity中http通訊
前言
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 c# http 請求json資料解析Unity3DC#HTTPJSON
- Unity3d 初探Unity3D
- unity3d碰撞Unity3D
- unity3d sqliteUnity3DSQLite
- unity3D進階Unity3D
- Unity3d FingerGestures 使用 例子Unity3D
- Unity3D 8叉樹Unity3D
- 【Unity3D】資源管理Unity3D
- 【Unity3D】UI Toolkit容器Unity3DUI
- Unity3d的安裝Unity3D
- Unity3D 單例模式Unity3D單例模式
- Unity3d 協程 StartCoroutineUnity3D
- Unity3D 快速參考Unity3D
- 【Unity3D】常用快捷鍵Unity3D
- Unity3d Android SDK接入解析(一)Unity3d 與 Android之間的互相呼叫Unity3DAndroid
- unity3D AssetBundle載入方式Unity3D
- Unity3d主城玩家位置同步Unity3D
- Unity3D 透明物體ShaderUnity3D
- unity3d外掛之 DoTweenUnity3D
- Unity3D ARKit 參考文章Unity3D
- Unity3d 人物的跳躍Unity3D
- unity3d縮放物體Unity3D
- unity3d 讀取串列埠Unity3D串列埠
- Unity3D中的C#程式設計初級Unity3DC#程式設計
- HTTP通訊協議HTTP協議
- Unity3D 基礎自學學習筆記(二) Unity3D 基礎控制元件Unity3D筆記控制元件
- Unity3D事件系統和EventSystemUnity3D事件
- Unity3D筆記五 快捷鍵Unity3D筆記
- Unity3D C#建立COM介面Unity3DC#
- Unity3D相關面試題Unity3D面試題
- unity3d Text莫名消失問題Unity3D
- Unity3d Android SDK接入解析(二)Unity3d Android SDK的設計與兩種接入方式Unity3DAndroid
- [Unity3D] 2D畫素遊戲(一) Hello Unity!Unity3D遊戲
- Unity3D學習筆記3——Unity Shader的初步使用Unity3D筆記
- 【Unity3D的四種座標系】Unity3D
- unity中播放視訊Unity
- 深度解密HTTP通訊細節解密HTTP
- HTTP協議的通訊框架HTTP協議框架
- Unity3D 關於飛行型別集合Unity3D型別