👋
[Unity] Jsonに保存された情報を読み取る
[Unity] Jsonに保存された情報を読み取る
行いたいこと
・ゲーム情報(PlayerStatusや保持アイテム等)を外部ファイルで保管したJsonファイルからゲーム情報を読み取りたい。
・Excelに入力した情報をJsonファイルに置き換え、Jsonファイル内の情報をUnityに読み込みたい。(後日追記)
参考サイト
下記2つのサイトを参考に実装しました。
ソースコード
test.txt
読み込見たい情報が記載されたJsonファイルです。
test.txt
{
"loadItem": [
{
"x": 1.0,
"y": 1.0
},
{
"x": 2.0,
"y": 2.0
},
{
"x": 2.0,
"y": 2.0
}
]
}
InputToJson.cs
Jsonファイルから情報を読み取るソースファイルです。
InputToJson.cs
using UnityEngine;
[System.Serializable]
public class LoadData
{
public MainItemData[] loadItem;
}
public class InputToJson : MonoBehaviour
{
void Start()
{
// SaveDataクラスをインスタンス化
LoadData loadData = new LoadData();
// SaveDataクラスのitem配列を要素
loadData.loadItem = new MainItemData[3];数3でインスタンス化
// Assets/Resources配下のtest.txtの中身を文字列に変換する。
string inputString = Resources.Load<TextAsset>("test").ToString();
// 読み取った文字列をオブジェクト型に変換
LoadData inputJson = JsonUtility.FromJson<LoadData>(inputString);
// 配列名であるloadItemとJsonに記載された配列名が一致していないとヌルポとなるので、配列名が同一か確認すること。
Debug.Log(inputJson.loadItem[0].x); // 1
}
}
MainItemData.cs
配列に格納されていたクラス。
以下の記事でJsonに情報を書き込む方法について記述しました。
MainItemData.cs
[System.Serializable]
public class MainItemData
{
public float x;
public float y;
}
Discussion