UnityでMiniJSONを使ってみる
こんにちはあゆめぐです。
今回はWWWの通信まわりを軽くやってみます。
サーバー側はphpでシンプルなJSONデータ返す形でやってみます
##サーバーソース(php)
サーバー側はphpでいきます。
user_idを渡すとユーザーデータのjsonがかえってくるイメージで。
if(isset($_REQUEST['user_id'])){
$data = array(
'status' => 'ok', // ステータス
'name' => 'あゆめぐ', // ニックネーム
'lv' => 1, // LV
'hp' => 10, // HP
'max_hp' => 10, // 最大HP
'now_exp' => 0, // 現在の経験値
'next_exp' => 10, // 次のレベルまでの経験値
'money' => 0, // お金
);
$json = json_encode($data);
print $json;
}else{
$data = array(
'status' => 'ng',
'msg' => 'エラー'
);
$json = json_encode($data);
print $json;
}
user_idを渡した場合
渡さない場合
サーバーにあげて直接urlをたたいたところ
##Unity側の実装
unityでjsonを扱うのに今回はMiniJSONを使用します
ダウンロードはこちら
ほかのJsonライブラリなどはこちらがわかりやすいです
このMiniJSON.csをUnityにインポート。
利用の際には
using MiniJSON;
を忘れずに!
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using MiniJSON;
public class TestWww : MonoBehaviour {
public readonly string baseUrl = "サーバーパス";
public readonly string getUserDataAPI = "phpファイル名";
private int user_id = 1;
void Start() {
StartCoroutine("GetUserData");
}
IEnumerator GetUserData(){
string url = baseUrl + getUserDataAPI + "?user_id=" + user_id;
WWW www = new WWW(url);
yield return www;
//JSONテキストのデコード
Dictionary<string,object> jsonData = MiniJSON.Json.Deserialize(www.text) as Dictionary<string,object>;
//データの取得
string name = (string)jsonData["name"];
Debug.Log (name);
}
}
はいname取得できました〜
##今回の感想 せっかくunityProかったので次はAssetBundleまわりやってみようかなと思います。