保存到Google Play云自动保存

时间:2015-06-07 15:50:27

标签: android unity3d google-play-games google-cloud-save

背景
我正在处理已在Google Play商店发布的android game 现在我计划添加Cloud Save功能作为更新 (仅供参考:我正在使用Unity和Play Games plugin

问题
经过数小时的研究和实验,我目前仍然坚持如何自动保存游戏。

我的游戏是迷你游戏的集合,玩家可以继续玩,直到他的生命耗尽 我希望在玩家输掉时自动发生保存。

根据插件,这是我保存到云端的方式:

char* array = "String";

我需要2个函数int* array = 1;的参数,第一个是元数据,第二个是数据本身。

我搜索的所有地方(即使在谷歌),我都找不到自动生成元数据的方法 根据我的研究,我可以从下面的函数中获取元数据:

public void SaveGame (ISavedGameMetadata game, byte[] savedData) {
    /* code omitted */
    savedGameClient.CommitUpdate(game, updatedMetadata, savedData, OnSavedGameWritten);
}

这样用户需要打开一个对话框,然后自己创建一个新的保存 这在我的游戏中不可能发生,因为我需要在每次玩家输掉时保存。

参考
我知道它应该是可能的,一个名为Get Bigger! Mola的游戏可以在每次玩家失败时保存进度,而无需打开保存对话框。

问题
谁能给我任何关于此的线索?
我花了整整一天的时间没有回答...... 任何形式的帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我个人不熟悉您尝试保存统计信息的资产。 但是,我确实使用了我个人可以推荐的资产Stan's Native

如果您想免费获得其他内容,可以使用以下链接Search Native

无论如何,你应该查看有关使用theie云的Google Tutorials,Android网站上有很多不涉及Unity的信息。 Android Developer

答案 1 :(得分:0)

如上所述here,你可以打开一个新的快照,而不必从列表中选择一个,只需指定文件名,如果它存在,它将使用它,否则它将创建一个新的。

这样的事情:

        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
    savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork,
        ConflictResolutionStrategy.UseLongestPlaytime, delegate(SavedGameRequestStatus status, ISavedGameMetadata metadata) {
            // your code here ....
        });