2015-06-07 4 views
6

ФОН
Я работаю на android game, который был опубликован в Google Play Store.
И теперь я планирую добавить функцию облачного сохранения в качестве обновления.
(FYI: Я использую Unity и Play Games plugin)Сохранение в Google Play Cloud Сохранить Автоматически

ПРОБЛЕМА
После нескольких часов исследований и экспериментов, я в настоящее время застрял на том, чтобы автоматически сохранить игру.

Моя игра представляет собой коллекцию мини-игр, в которой игрок может продолжать играть, пока не закончится жизнь.
Я хочу, чтобы сохранение происходило автоматически в момент проигрывания проигрывателя.

Согласно плагин, это, как я сохранить в облаке:

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

мне нужно 2 параметра для функции SaveGame, то первый из них является мета-данные, то вторая одна сами данные ,

Везде, где я ищу (даже в 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

Вы поняли это еще? У меня та же проблема. Я уверен, что должен быть способ сделать это, так как многие игры позволяют облако сохранять на основе учетной записи google, но я не могу найти что-либо по этой теме. – Bhaskar

ответ

0

Я лично не знаком с активом, с которым вы пытаетесь сохранить статистику. Однако я использовал этот актив Stan's Native, который лично я могу порекомендовать.

Если вы хотите что-то другое бесплатно, там эти ссылки, Search Native

в любом случае, вы должны проверить Google Tutorials о работе с 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 .... 
     }); 
Смежные вопросы