Проверка завершения сериализации двоичного форматера - PullRequest
0 голосов
/ 07 июня 2018

Можно ли проверить, завершил ли Serialize () двоичного форматера запись в файл?Я пытаюсь сделать систему сохранения / загрузки в Unity и решил использовать двоичный форматер, но я не уверен, как проверить, завершена ли сериализация.Я бы не хотел, чтобы игрок выходил из игры, пока игра все еще загружается, и в идеале хотел бы уведомить игрока о завершении сохранения (сериализации), прежде чем он сможет продолжить.

В случае, если необходим какой-то код:

    BinaryFormatter binaryFormatter = new BinaryFormatter();
    FileStream fileStream = new FileStream(Application.persistentDataPath + "/player.sav", FileMode.Create);

    PlayerData playerData = new PlayerData(player);
    binaryFormatter.Serialize(fileStream, playerData);
    fileStream.Close();

1 Ответ

0 голосов
/ 07 июня 2018

То, что мы делаем в моей компании, это каждый раз, когда мы записываем на диск, мы записываем во временное местоположение, и только после полной операции мы выполняем операцию перемещения / замены файла.

Это самая безопасная и простая вещь для реализации.Если пользователь завершает работу и запись все еще продолжается, ничто не нарушается.

Также, если есть какие-либо исключения во время процесса записи, ничто не будет повреждено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...