检查二进制格式化程序的序列化是否已完成

时间:2018-06-07 03:32:37

标签: c# unity3d serialization save binaryformatter

是否可以检查二进制格式化程序的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 :(得分:3)

我们在公司工作的是,只要我们写入磁盘,就会写入临时位置,只有在完整操作完成后,我们才会执行文件移动/替换操作。

这是最安全,最简单的方法。如果用户退出并且写入仍在进行中,则不会有任何损坏。

此外,如果在写入过程中出现任何异常,则不会有任何损坏。