最近 Unity 内で JSON 形式のデータファイルを取り込む方式を使い、前回から備忘も兼ねて簡単に使用法を解説しています。


具体的には Unityエディタ内に用意した Resourceフォルダから JSON形式ファイルを読み取る方法となります。
今回は Unity上で実際にシンプルな JSON形式の読み込みと、配列を使った JSON形式の読み込みの事例を取り上げ説明いたします。
Unity Basic_08

【実例1:単純なJSON】

まず最も単純な以下のような JSONデータを読み込みます。
Unity Basic_09

読込部分の C#プログラムは以下の様になります。
Unity Basic_10

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」です。
Unity Basic_11

実行結果として、読み込まれた JSONデータが以下の様に個別に出力できています。
Unity Basic_12


【実例2:配列使用のJSON】

もう少し複雑な形として、配列を使用した以下のような JSONデータを読み込みます。
Unity Basic_13

読込部分の C#プログラムは以下の様になります。今回は読み込んだデータを全部表示するために foreach文を使います。
Unity Basic_14

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」です。
Unity Basic_15

実行結果として、読み込まれた JSONデータが以下の様に個別に出力できています。
Unity Basic_16


2回に分けて Unityでの JSON形式データの取り込み方を説明しました。
実質そんなに使う機会はないですが、逆にそう言う場合はすぐにやり方を忘れてしまいます。今回の解説が多くの方の助けになれば幸いです。


Sponsored Link