2016-08-13 3 views
0

Я занимаюсь исследованием опции «Сохраненные игры» в плагине сервисов Google Play Games для Unity, и одна вещь, которую я не заметил, - это возможность сохранить данные игры без интерфейс, показывающий пользователю возможность сохранить данные игры.Плагин Google Play Services - сохраненные игры

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

Тем не менее, независимо от того, как я смотрю онлайн, я не могу найти что-либо по этой теме.

Кто-нибудь знает, как это делается, или статью, которая покажет мне, как это сделать?

P.S. Подобный вопрос ранее задавал Джей Казама около года назад (https://stackoverflow.com/users/3770593/jay-kazama), но ответа на этот вопрос никогда не было, поэтому я подумал, что снова попрошу.

ответ

1

игра от Google Cubic Pilot использует saveToDisk(), чтобы сохранить прогресс игры:

public void SaveProgress() 
    { 

     mProgress.SaveToDisk(); 
     SaveToCloud(null); 

    } 

    public void AutoSave() 
    { 
     if (mProgress.Dirty) 
     { 
      mProgress.SaveToDisk(); 
      SaveToCloud(mAutoSaveName); 
     } 
    } 

Я также прочитал руководство о сохранении в форумах Unity. Вот что я нашел.

Используйте SaveDataBundle

public void SaveGame (SaveDataBundle file, Action<bool> callback) 
    { 
     CommitSaveToCloud(file,"undefined",callback); 
    } 

Then use the CommitUpdate with the ISavedGameClient object like 

savedGameClient.CommitUpdate (save, 
             updatedMetadata, 
             SaveDataBundle.ToByteArray (newBundle), 
             (SavedGameRequestStatus status,ISavedGameMetadata game)=> 
             { 
      if(status == SavedGameRequestStatus.Success) 
      { 
       m_saveBundleMetadata = game; 
       if(saveCreatedCallback != null) 
        saveCreatedCallback(game); 
      } 

Вы можете прочитать больше о том, что в этом Unity thread.

+0

Спасибо! Это именно то, что я искал. Я только что реализовал его в своем коде, и он отлично работал! – Bhaskar

+0

который вы использовали, Google один или Единство? – noogui

+0

Я использовал Unity one – Bhaskar

Смежные вопросы