ToJson не работает

Делаю систему сохранений, но она не работает (просто возвращает пустой список).

using System.Collections.Generic;
using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
using UnityEngine;

[Serializable]
public class RawSaveData 
{
    public string data;

    public static explicit operator int[](RawSaveData saveData) //переводим из списка в RawSaveData
    {
        string data = saveData.data;
        int[] vs = JsonUtility.FromJson<int[]>(data) ?? new int[0];
        return vs;
    }

    public override string ToString()
    {
        return data;
    }

    public static explicit operator RawSaveData(int[] ints)//переводим из RawSaveData в список
    {
        RawSaveData saveData = new RawSaveData();
        saveData.data = JsonUtility.ToJson(ints);
        return saveData;
    }
}

public class SaveManager : MonoBehaviour
{
    public static void Save(string fileName, RawSaveData data)
    {
        BinaryFormatter bf = new BinaryFormatter();
        FileStream file = File.Create(Application.persistentDataPath
          + "/" + fileName + ".dat");
        bf.Serialize(file, data);
        file.Close();
    }
    public static RawSaveData Load(string fileName)
    {
        if (File.Exists(Application.persistentDataPath + "/" + fileName + ".dat"))
        {
            BinaryFormatter bf = new BinaryFormatter();
            FileStream file =
            File.Open(Application.persistentDataPath + "/" + fileName + ".dat", FileMode.Open);
            RawSaveData data;
            try
            {
                data = (RawSaveData)bf.Deserialize(file);
                print(data.ToString());
                file.Close();

            }
            catch
            {
                print("ошибка");
                file.Close();
                return new RawSaveData();
            }
            return data;
        }
        else return new RawSaveData();
    }
}

Сделал в первый раз отладку, и понял что не работает конкретно перевод из списка в класс RawSaveData (функция ToJson возвращает {}). Подскажите что можно сделать и есть ли способы делать JSON из списков в Unity?


Ответы (0 шт):