using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using UnityEngine;
public class InventorySaver : MonoBehaviour
{
[SerializeField] private PlayerInventory myInventory;
private void OnEnable()
{
LoadScriptables();
}
public void ResetScriptables()
{
int i = 0;
while(File.Exists(Application.persistentDataPath +
string.Format("/{0}.inv", i )))
{
File.Delete(Application.persistentDataPath +
string.Format("/{0}.inv", i ));
i++;
}
}
public void SaveScriptables()
{
ResetScriptables();
for (int i = 0; i < myInventory.myInventory.Count; i++)
{
FileStream file = File.Create(Application.persistentDataPath +
string.Format("/{0}.inv", i ));
BinaryFormatter binary = new BinaryFormatter();
var json = JsonUtility.ToJson(myInventory.myInventory[i]);
binary.Serialize(file, json);
file.Close();
}
}
public void LoadScriptables()
{
myInventory.myInventory.Clear();
int i = 0;
while(File.Exists(Application.persistentDataPath +
string.Format("/{0}.inv", i)))
{
var temp = ScriptableObject.CreateInstance<InventoryItem>();
FileStream file = File.Open(Application.persistentDataPath +
string.Format("/{0}.inv", i ), FileMode.Open);
BinaryFormatter binary = new BinaryFormatter();
JsonUtility.FromJsonOverwrite((string)binary.Deserialize(file),
temp);
file.Close();
myInventory.myInventory.Add(temp);
i++;
}
}
}