JsonUtilityを使ってJSON形式で保存するとき、悩みに悩んだため、初心者でもわかるように、書き込んで、それを読み取るサンプルプログラムを示しておきます。
自分自身も初心者なので一部間違いがあるかもしれませんが、参考になると嬉しいです。
###ソースコード
using System.Collections; //このコードでは必要とされていませんが、使う機会が多いので参照
using System.Collections.Generic; //このコードでは必要とされていませんが、使う機会が多いので参照
using UnityEngine; //いろいろなところで必要
using System; //JsonUtilityを扱うために必要
using System.IO; //ファイル読み書き用
[Serializable] //JSONWrite直列化
public class JSONWrite //クラスを定義
{
public int posData; //変数を定義
}
public class JSONPacker : MonoBehaviour {
private string DataPath; //ここに保存するパスが入ります
private void Start()
{
DataPath = "保存したい場所/ファイル名.txt"; //変数を初期化するのには定数(決まった数)でなければいけないので、変数の定義が済んだ後に、データパスを代入します。
JSONWrite DataIn = new JSONWrite(); //DataInに、JSONWriteクラスを入れる(たぶん違いますがそう考えるとわかりやすいです)
DataIn.posData = 10; //JSONWriteのposDataを10に
string SaveData = JsonUtility.ToJson(DataIn); //JSONWriteクラスをJsonに変換、string型SavaDataとして保管
File.WriteAllText(DataPath, SaveData, System.Text.Encoding.UTF8); //DataPathに保管されているパスを指定しテキストとして保管
Debug.Log(SaveData); //デバックログに結果を出力
JSONWrite Uncode = JsonUtility.FromJson<JSONWrite>(File.ReadAllText(DataPath)); //DataPathに保管されているパスを指定しテキストを読み取り
Debug.Log("Out" + Uncode.posData); //JSONをJSONWriteクラスに変換した結果を出力
}
}
~~~
DataPathは自分の場合"C:/Asset/ProjectFile/Unity's/original_data.txt"のようにしました。
\\で指定するとエラーが出ると思います。
DataPathは保存したい場所に合わせて変えてください。