自动保存到 Google Play 云保存

Posted

技术标签:

【中文标题】自动保存到 Google Play 云保存【英文标题】:Saving to Google Play Cloud Save Automatically 【发布时间】:2015-08-22 02:45:19 【问题描述】:

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

问题 经过数小时的研究和实验,我目前正纠结于如何自动保存游戏。

我的游戏是一系列迷你游戏,玩家可以在其中继续玩直到他的生命耗尽。 我希望在玩家输掉比赛时自动进行保存。

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

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

函数SaveGame需要2个参数,第一个是元数据,第二个是数据本身。

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

void ShowSelectUI() 
    uint maxNumToDisplay = 5;
    bool allowCreateNew = true;
    bool allowDelete = true;

    // I will need to call this function first
    // This will display a dialog to the player
    // The player will need to create a new save manually afterwards
    ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
    savedGameClient.ShowSelectSavedGameUI("Select saved game",
                                          maxNumToDisplay,
                                          allowCreateNew,
                                          allowDelete,
                                          OnSavedGameSelected);



public void OnSavedGameSelected (SelectUIStatus status, ISavedGameMetadata game) 
    // And then from the callback function I get the meta data
    // (ISavedGameMetadata game)

    if (status == SelectUIStatus.SavedGameSelected) 
        // handle selected game save
     else 
        // handle cancel or error
    

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

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

问题 谁能给我任何关于这个的线索? 我花了一整天的时间寻找答案... 任何形式的帮助将不胜感激。

【问题讨论】:

你想明白了吗?我有同样的问题。我很肯定一定有办法做到这一点,因为很多游戏都允许基于谷歌帐户进行云保存,但我似乎找不到任何关于该主题的内容。 【参考方案1】:

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

类似这样的:

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

【讨论】:

【参考方案2】:

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

如果您想要其他免费的东西,有这些链接,Search Native

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

【讨论】:

以上是关于自动保存到 Google Play 云保存的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Play Android Developer API 一段时间后“超出每日保存配额”

解决Google浏览器保存密码自动填充

是否可以在 google play 游戏服务上保存关卡?

用户退出 Google Play 服务后保存游戏的最佳做法?

unity play 游戏服务云保存内部错误

WPS保存到云文档的文件存在哪里了?