Здравствуйте! У меня есть скрипт который сохраняет позиции объектов в сцене, но при десериализации файла выдает эту ошибку InvalidCastException: Specified cast is not valid. Вот где я храню данные
[Serializable]
class SaveData
{
public float savePosX;
public float savePosY;
public float savePosZ;
//public float saveOrthSize;
}
[Serializable]
class SaveDataAll
{
public SaveData[] obj = new SaveData[10] { new SaveData(), new SaveData(), new SaveData(), new SaveData(), new
SaveData(), new SaveData(), new SaveData(), new SaveData(), new SaveData(), new SaveData(), };
}
Вот код где я сохраняю данные
void SavePos(GameObject[] obj)
{
for (int i = 0; i < saveAll.obj.Length; i++)
{
saveAll.obj[i].savePosX = obj[i].transform.position.x;
saveAll.obj[i].savePosY = obj[i].transform.position.y;
saveAll.obj[i].savePosZ = obj[i].transform.position.z;
}
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(fileApp, FileMode.OpenOrCreate);
bf.Serialize(file, saveAll);
file.Close();
}
И где я загружаю
void LoadPos()
{
if (File.Exists(fileApp))
{
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(fileApp, FileMode.OpenOrCreate);
saveAll = (SaveDataAll)bf.Deserialize(file);
for (int i = 0; i < saveAll.obj.Length; i++)
{
pos.x = saveAll.obj[i].savePosX;
pos.y = saveAll.obj[i].savePosY;
pos.z = saveAll.obj[i].savePosZ;
gmTransform[i].transform.position = pos;
}
file.Close();
}
}