Ошибка c десериализацией файла сохранения. В чём проблема?

Есть два скрипта, один из них это просто триггер при входе в который, должна добавляться единица к переменной которая находится в файле сохранения, а во втором скрипте, файл сохранения должен десериализовываться, и эта единица должна уходить дальше по программе. Но во втором скрипте unity ругается на эту строчку: "SaveData data = (SaveData)bf.Deserialize(file);" с ошибкой: "InvalidCastException: Specified cast is not valid." Любые решения?
Код триггера:
public void UnlockLevel()
    {

            BinaryFormatter bf = new BinaryFormatter();
            FileStream file = File.Create(Application.persistentDataPath
              + "/MySaveData.dat");
            SaveData data = new SaveData();
            data.savedLevels++;
            bf.Serialize(file, data);
            file.Close();
            Debug.Log("Game data saved!");
            Invoke("LoadMainMenu", 1f);
        
    }


Код скрипта с диссериализацией:

if (File.Exists(Application.persistentDataPath
             + "/MySaveData.dat"))
            {
                BinaryFormatter bf = new BinaryFormatter();
                FileStream file =
                  File.Open(Application.persistentDataPath
                  + "/MySaveData.dat", FileMode.Open);
                SaveData data = (SaveData)bf.Deserialize(file);
                file.Close();
                LevelComplete = data.savedLevels;
                Debug.Log("Game data loaded!");
            }
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы