Задать вопрос
@ProstoMimo

Как исправить эту ошибку InvalidCastException: Specified cast is not valid в юнити?

Здравствуйте! У меня есть скрипт который сохраняет позиции объектов в сцене, но при десериализации файла выдает эту ошибку 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();
        }
    }
  • Вопрос задан
  • 308 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@ProstoMimo Автор вопроса
Ошибка прошла как то сама собой, и я не знаю как так получилось)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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