我需要加载/保存用户在我的Unity游戏中赢得的硬币数量和Play Games Services的已保存游戏。此页面上有一个关于如何保存图像的示例:wwwhttps://developer.android.com/games/pgs/unity/saved-games#write_a_saved_game有人能告诉我如何加载/保存数字而不是图像吗?
gjmwrych1#
准确地说,我不会说你确实保存了一张图片。我的意思是,你确实保存了它,但只是作为你的游戏保存文件的一个封面,我不知道你是否可以检索它(也许你可以,我还没有真正检查过)。也许使用Google Play保存系统最重要的部分是byte[] savedData参数,它只是一个字节数组,你要传递什么,以及如何在游戏加载时解释这些数据。有很多方法可以实现它。我个人创建了一个自定义的GameSave对象,其中包含我想要保存的所有数据,然后我使用JsonUtility序列化它。
byte[] savedData
JsonUtility
string json = JsonUtility.ToJson(gameSave);
然后,我使用MemoryStream和BinaryFormatter将json中的数据转换为字节数组:
MemoryStream
BinaryFormatter
MemoryStream memoryStream = new MemoryStream(); BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, json); byte[] data = memoryStream.GetBuffer();
然后必须将该数据作为参数传递给savedGameClient.CommitUpdate方法。当然,这只是其中一种方法,你可以从序列化的类对象发送json以外的东西。其他的东西都有很好的记录,所以一旦你处理好了,你应该设法做剩下的。
savedGameClient.CommitUpdate
1条答案
按热度按时间gjmwrych1#
准确地说,我不会说你确实保存了一张图片。我的意思是,你确实保存了它,但只是作为你的游戏保存文件的一个封面,我不知道你是否可以检索它(也许你可以,我还没有真正检查过)。
也许使用Google Play保存系统最重要的部分是
byte[] savedData
参数,它只是一个字节数组,你要传递什么,以及如何在游戏加载时解释这些数据。有很多方法可以实现它。我个人创建了一个自定义的GameSave对象,其中包含我想要保存的所有数据,然后我使用
JsonUtility
序列化它。然后,我使用
MemoryStream
和BinaryFormatter
将json中的数据转换为字节数组:然后必须将该数据作为参数传递给
savedGameClient.CommitUpdate
方法。当然,这只是其中一种方法,你可以从序列化的类对象发送json以外的东西。
其他的东西都有很好的记录,所以一旦你处理好了,你应该设法做剩下的。