Unity graph tool solution based on different implementation now focused on Unity.Experimental.Graphview
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.5 KiB

using System.Collections.Generic;
using System.IO;
using UnityEngine;
namespace TNode.TNodeCore.Runtime.Components{
public class RuntimeDataSaver:MonoBehaviour{
public string saveName;
public string saveExtension = "tng";
public Dictionary<string, object> savedData = new Dictionary<string, object>();
public void Load(){
string path = Application.persistentDataPath + "/"+ saveName + "." + saveExtension;
if(!File.Exists(path)){
Debug.LogWarning("File not found: " + path);
return;
}
string json = File.ReadAllText(path);
savedData = JsonUtility.FromJson<Dictionary<string, object>>(json);
}
public void Save(){
string path = Application.persistentDataPath + "/" + saveName + "." + saveExtension;
string json = JsonUtility.ToJson(savedData);
File.WriteAllText(path, json);
}
public void Write(string id,object o){
if (savedData.ContainsKey(id)){
savedData[id] = o;
}
else{
savedData.Add(id,o);
}
}
public object Read(string id){
return savedData.ContainsKey(id) ? savedData[id] : null;
}
public bool Has(string id){
return savedData.ContainsKey(id);
}
public void Remove(string id){
if (savedData.ContainsKey(id)){
savedData.Remove(id);
}
}
}
}