はじめに
今回はセリフなどのデータをGistを使って簡単にWebサーバー上におき、読み込む方法についてに記事になります!
前回はJson
の作り方からmyjson
というサービスを使ってWebサーバーからJson
を取得するところまでをやりました。
ただmyjson
を実際のアプリ等で使うのはややマズイのかもしれません。
なので、今回はGist
というGithub
の機能の一つを用いてこれを実現したいと思います。
GistにJsonを置く
まずはこちらからGithubにログインしちゃいましょう。
こちらの画面が出れば大丈夫です。
そうしたら、下の画像を参考にしながら概要・ファイル名・ソースコードを記入をし、Create sercret gist
をクリックして保存をしましょう。
また、非公開といってもURLが分かればだれでも閲覧が可能みたいです。
URLを取得する
gist
の作成が完了して画面が遷移すると、右上にRaw
というボタンがあるはずです。こちらをクリックすることでUnity側で使うURLを入手することができます。
例) https://gist.githubusercontent.com/ユーザー名/--------/raw/--------/sample.json
Unity側でURLを指定する
前回で作成したコードのURLの部分を変更してみましょう。
using UnityEngine; using System.Collections; using System.Collections.Generic; [System.Serializable] public class JsonData { public UserInfo[] userInfos; } [System.Serializable] public class UserInfo { public int id; public string name; public TelephoneNumber tel; } [System.Serializable] public class TelephoneNumber { public string homePhone; public string mobilePhone; } public class JsonReader : MonoBehaviour { private string path = "https://gist.githubusercontent.com/username/---/raw/---/sample.json"; IEnumerator Start() { // サーバからJSON取得 using (WWW www = new WWW(path)) { //Jsonを取得するまで待機 yield return www; //エラーの場合 if (!string.IsNullOrEmpty(www.error)) { Debug.LogError("www Error:" + www.error); yield break; } Debug.Log(www.text); //JsonData型のインスタンスを作成 JsonData jsonData = new JsonData(); //jsonのデータをjsonDataに格納 JsonUtility.FromJsonOverwrite(www.text, jsonData); //出力 foreach (var item in jsonData.userInfos) { Debug.Log("id: " + item.id); Debug.Log("name: " + item.name); Debug.Log("homePhone: " + item.tel.homePhone); Debug.Log("mobilePhone: " + item.tel.mobilePhone); } } } }
さいごに
これでGist
を使ってWebサーバー上からデータを取得することができました。
この方法なら実際のアプリでも使えるのではないかと思います。
ただ「これじゃダメ!」といった所がもしあれば、是非コメント等で教えていただけると嬉しいです!