2015-06-07 175 views
6

背景
我正在處理已發佈在Google Play商店中的android game
現在我打算添加Cloud Save功能作爲更新。
(FYI:我使用的是團結和Play Games plugin保存到Google Play雲自動保存

問題
後的研究和實驗時間,我目前停留在如何自動保存遊戲。

我的遊戲是一個迷你遊戲的集合,玩家可以繼續玩,直到他用完了。
我希望保存在玩家輸掉的時候自動發生。

據插件,這是我保存到雲:

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

我需要2個參數的功能SaveGame,第一個是元數據,那麼第二個一個是數據本身。

無處不在我搜索(甚至在谷歌),我找不到自動生成元數據的方法。
根據我的研究,我可以從下面的功能的元數據:

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

你想通了這一點了嗎?我有同樣的問題。我很積極,必須有辦法做到這一點,因爲許多遊戲允許基於谷歌帳戶的雲存儲,但我似乎無法找到關於該主題的任何內容。 – Bhaskar

回答

0

我個人並不熟悉您嘗試保存統計數據的資產。 但是,我確實使用了我個人可以推薦的這個資產Stan's Native

如果你想要別的東西免費的,還有這些鏈接,Search Native

無論如何,你應該檢查谷歌教程大約有theie雲中工作,有大量的信息,對Android的網站,不涉及統一。 Android Developer

0

如提到的here,你可以打開一個新的快照而不必從列表中選擇一個,只需指定文件名,如果存在,它將使用它,否則它會創建一個新的快照。

事情是這樣的:

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