環境
PHP(Laravel5)
Unity 2019.1.4f1 (64-bit)
概要
WebAPIを使った通信とデータ扱い。
・UnityWebRequest
APIのリクエストするため
・JsonUtility
APIで取得したjsonを使うため
この二点を使う。
実装
Model.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class Model
{
public int id;
public int name;
public int hp;
string access_url = "https://hoge.com/api/v1";
[System.Serializable]
public class Character
{
public int id;
public string name;
public int hp;
}
[System.Serializable]
public class Characters
{
public Character[] characters;
}
public IEnumerator ApiRequest()
{
UnityWebRequest request = UnityWebRequest.Get(access_url);
request.SetRequestHeader("Content-Type", "application/json");
yield return request.SendWebRequest();
Characters characters = JsonUtility.FromJson<Characters>("{\"characters\":" + request.downloadHandler.text + "}");
id = characterClass.characters[0].id;
name = characterClass.characters[0].name;
hp = characterClass.characters[0].hp;
}
}
使い方
読み込まれた時点で呼びだしてあげればいいかと思います。
後は好みでどうぞ
public void Start()
{
StartCoroutine(getModel());
}
IEnumerator getModel()
{
characterModel = new CharacterModel();
yield return StartCoroutine(characterModel.ApiRequest());
// 以下表示させるなど
}
PHP - Laravel
特別なことはしてない
LaravelのModelを読んでreturnで返すだけです。
namespace App\Http\Controllers;
use App\Models\Character;
class ApiController extends Controller
{
public function index()
{
return Character::all();
}
}