【发布时间】:2019-02-17 18:39:44
【问题描述】:
在我的项目中,我将播放器信息保存到 JSON 文件中。我在保存之前对信息进行了加密,但是如果玩家进入文件并碰巧删除了文件的一个字符,那么当游戏加载时,因为它依赖于该文件,游戏就会冻结。我确实有它,以便在未检测到文件时创建新的玩家信息,但如果文件在那里并且他们弄乱了它,有没有办法在游戏尝试加载它之前检测并纠正它。我正在使用 Unity 内置的 JSONUtility。
【问题讨论】:
-
只是尝试/捕获错误并像其他 IO 操作一样处理它?
-
使用 PlayerPrefs 保存,它在文件夹中有点下,所以不太容易找到。您可以保存为二进制文件,甚至可以加密,这样玩家就更难做某事了。如果用户搞砸了文件,那么您的代码就不够安全。您应该检查解析是否正常等等。终极解决方案,如果可以的话,将信息存储在服务器上。如今,游戏将数据保存在服务器上,因为它允许更安全的流程和分析。
-
您可以使用md5指纹来检查数据是否正确。将指纹保存在 PlayerPrefs 或其他位置。无论如何,如果他们故意编辑弄乱了文件,你为什么要关心?