けいくん@keikun 2020年03月17日 13:21

Unity WebAPIを使ってデータを扱う

Unity php WebAPI JSON

環境

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();
    }
}

関連記事

  • 【cakephp3】steamアカウントでログイン認証 けいくん @keikun

  • コメント

    コメントがありません。

    コメント

    コメントがありません。