Есть два скрипта, один из них это просто триггер при входе в который, должна добавляться единица к переменной которая находится в файле сохранения, а во втором скрипте, файл сохранения должен десериализовываться, и эта единица должна уходить дальше по программе. Но во втором скрипте 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!");
}