Google Play 服务插件 - 保存的游戏
Google Play Services Plugin - Saved Games
我一直在研究 Google Play Games Services Plugin for Unity 中的 Saved Games 选项,但我没有注意到的一件事是能够在没有界面的情况下保存游戏数据的选项出现让用户选择保存游戏数据
基本上我希望能够在玩家每次完成关卡或解锁新内容时进行保存。我不认为每次发生 UI 弹出都有意义。我也很确定应该存在这样的选项,因为 Play 商店中的很多游戏都将其游戏数据保存在云中而不显示此 UI.
不过,无论我在网上看多少,我似乎都找不到与该主题相关的任何内容。
有谁知道这是怎么做到的,或者有文章可以告诉我怎么做?
P.S。 Jay Kazama 大约一年前曾问过类似的问题 (https://whosebug.com/users/3770593/jay-kazama),但一直没有真正的答案,所以我想我会再问一次。
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。
我一直在研究 Google Play Games Services Plugin for Unity 中的 Saved Games 选项,但我没有注意到的一件事是能够在没有界面的情况下保存游戏数据的选项出现让用户选择保存游戏数据
基本上我希望能够在玩家每次完成关卡或解锁新内容时进行保存。我不认为每次发生 UI 弹出都有意义。我也很确定应该存在这样的选项,因为 Play 商店中的很多游戏都将其游戏数据保存在云中而不显示此 UI.
不过,无论我在网上看多少,我似乎都找不到与该主题相关的任何内容。
有谁知道这是怎么做到的,或者有文章可以告诉我怎么做?
P.S。 Jay Kazama 大约一年前曾问过类似的问题 (https://whosebug.com/users/3770593/jay-kazama),但一直没有真正的答案,所以我想我会再问一次。
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。