データ保存関連
ScriptableObjectについて
unity専用のデータベース
クラス定義には、「: ScriptableObject」
Attributeを使い、「Assets」の「Create」メニューに、「ScriptableObject」クラス専用のオブジェクトを作成するメニューを追加できる
「ScriptableObject」には、「List」配列が有効
「JsonUtility」を使って、「シリアライズ化」「デシリアライズ化」しておけば、あとは、「フォルダ」「ファイル」を指定してファイルの読み書きするだけ
using System.Collections.Generic;
using UnityEngine;
using System;
[CreateAssetMenu(fileName = "PlayerDataScriptable",menuName = "d/PlayerData1")]
public class PlayerDataScriptable : ScriptableObject
{
public string playerName;
public int hp;
public List<SceneParam> sceneParams;
[Serializable]
public class SceneParam
{
public string sceneName;
public bool isClear;
}
public void Save()
{
var data = JsonUtility.ToJson(this, true);
Debug.Log(data);
PlayerPrefs.SetString("PlayerData", data);
}
public void Load()
{
var data = PlayerPrefs.GetString("PlayerData");
Debug.Log(data);
JsonUtility.FromJsonOverwrite(data, this);
}
}
サポートエリアでのサポート、ありがとうございます