PHP(Laravel5)
Unity 2019.1.4f1 (64-bit)
WebAPIを使った通信とデータ扱い。
・UnityWebRequest
APIのリクエストするため
・JsonUtility
APIで取得したjsonを使うため
この二点を使う。
- 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());
- // 以下表示させるなど
- }
特別なことはしてない
LaravelのModelを読んでreturnで返すだけです。
- namespace App\Http\Controllers;
- use App\Models\Character;
- class ApiController extends Controller
- {
- public function index()
- {
- return Character::all();
- }
- }
コメントがありません。