Unityでセーブデータを保存したい場合はJsonUtilityを使うと便利です。
使い方は次のような感じです。
public class ExampleData
{
public string Name;
public int Value;
}
public class Example : MonoBehaviour
{
void Start()
{
var data1 = new ExampleData { Name = "abc", Value = 123 };
var json = Save(data1);
Debug.Log(json);
var data2 = Load(json);
Debug.Log($"Name={data2.Name} Value={data2.Value}");
}
ExampleData Load(string json)
{
return JsonUtility.FromJson<ExampleData>(json);
}
string Save(ExampleData data)
{
return JsonUtility.ToJson(data);
}
}
実行結果
{"Name":"abc","Value":123} Name=abc Value=123
ArgumentException
MonoBehaviour
を継承したクラスでJsonUtility.FromJson
を使うとArgumentException
という例外が発生します。久し振りに使うと忘れて悩むことがあるので気を付けてください。
public class ExampleData : MonoBehaviour
{
public string Name;
public int Value;
}
リンク
Unity – Scripting API: JsonUtility
https://docs.unity3d.com/ScriptReference/JsonUtility.html