最近 Unity 内で JSON 形式のデータファイルを取り込む方式を使い、前回から備忘も兼ねて簡単に使用法を解説しています。
具体的には Unityエディタ内に用意した Resourceフォルダから JSON形式ファイルを読み取る方法となります。
今回は Unity上で実際にシンプルな JSON形式の読み込みと、配列を使った JSON形式の読み込みの事例を取り上げ説明いたします。
【実例1:単純なJSON】
まず最も単純な以下のような JSONデータを読み込みます。
読込部分の C#プログラムは以下の様になります。
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; [Serializable] public class MonsterData { public string ID; public string Name; public int HP; public int MP; } public class import_JSON1 : MonoBehaviour { void Start() { string str_File = Resources.Load("MonsterData").ToString(); MonsterData json_File = JsonUtility.FromJson<MonsterData> (str_File); Debug.Log(json_File.ID); Debug.Log(json_File.Name); Debug.Log(json_File.HP); Debug.Log(json_File.MP); } }
そして、JSONデータファイルは Unityエディタ上で Assetsフォルダ内に Resourcesフォルダを作成して そこに置いておきます。ファイル名は「MonsterData.json」です。
実行結果として、読み込まれた JSONデータが以下の様に個別に出力できています。
【実例2:配列使用のJSON】
もう少し複雑な形として、配列を使用した以下のような JSONデータを読み込みます。
読込部分の C#プログラムは以下の様になります。今回は読み込んだデータを全部表示するために foreach文を使います。
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; [Serializable] public class Json_File { public MonsterInfo[] input_File; } [Serializable] public class MonsterInfo { public string ID; public string Name; public int HP; public int MP; } public class import_JSON2 : MonoBehaviour { void Start() { string str_File = Resources.Load("MonsterInfo").ToString(); Json_File json_File = JsonUtility.FromJson<Json_File> (str_File); foreach (MonsterInfo tmp_Monster in json_File.input_File) { Debug.Log(tmp_Monster.ID); Debug.Log(tmp_Monster.Name); Debug.Log(tmp_Monster.HP); Debug.Log(tmp_Monster.MP); } } }
そして、JSONデータファイルは同じように Resourcesフォルダ内に置いておきます。ファイル名は「MonsterInfo.json」です。
実行結果として、読み込まれた JSONデータが以下の様に個別に出力できています。
2回に分けて Unityでの JSON形式データの取り込み方を説明しました。
実質そんなに使う機会はないですが、逆にそう言う場合はすぐにやり方を忘れてしまいます。今回の解説が多くの方の助けになれば幸いです。
実質そんなに使う機会はないですが、逆にそう言う場合はすぐにやり方を忘れてしまいます。今回の解説が多くの方の助けになれば幸いです。
Sponsored Link