云存档开发指南
阅读此文档前请先阅读云存档功能介绍,了解云存档的核心概念及功能。
权限说明
- Unity
- Android
- iOS
- UE4
该模块需要如下权限:
权限 | 使用目的 | 权限申请时机 |
---|---|---|
网络权限 | 用于访问网络数据 | 用户首次使用该功能时会申请权限 |
该模块将在应用中添加如下权限:
<uses-permission android:name="android.permission.INTERNET" />
集成前准备
接入云存档的前提是:
-
绑定域名,包括 API 域名和文件域名。
-
云存档需要依赖于内建账户,因此需要通过开发者中心开通 TDS 内建账户。游戏存档会绑定在 TDSUser 下,所以请首先参考内建账户系统集成文档完成 SDK 获取 、SDK 初始化以及登录功能的接入。
创建存档
SDK 会自动获取当前登录玩家(TDSUser)信息,关联到存档上。 因此,用户已登录时才能创建存档。
- Unity
- Android
- iOS
var gameSave = new TapGameSave
{
Name = "internal name",
Summary = "description",
ModifiedAt = DateTime.Now.ToLocalTime(),
PlayedTime = 60000L, // ms
ProgressValue = 100,
CoverFilePath = image_local_path, // jpg/png
GameFilePath = dll_local_path
};
await gameSave.Save();
TapGameSave snapshot = new TapGameSave();
snapshot.setName("internal name");
snapshot.setSummary("description");
snapshot.setPlayedTime(60000); // ms
snapshot.setProgressValue(100);
snapshot.setCover(image_local_path); // jpg/png
snapshot.setGameFile(dll_local_path);
snapshot.setModifiedAt(new Date());
snapshot.saveInBackground().subscribe(new Observer<TapGameSave>() {
@Override
public void onSubscribe(@NotNull Disposable d) {}
@Override
public void onNext(@NotNull TapGameSave gameSave) {
System.out.println("存档保存成功:" + gameSave.toJSONString());
}
@Override
public void onError(@NotNull Throwable e) {
e.printStackTrace();
}
@Override
public void onComplete() {}
});
TapGameSave *gameSave = [TapGameSave new];
gameSave.name = @"internal name";
gameSave.summary = @"description";
gameSave.modifiedAt = [NSDate date];
gameSave.playedTime = 60000; // ms
gameSave.progressValue = 100;
[gameSave setCoverWithLocalPath:@"image_local_path" error:&error]; // jpg/png
[gameSave setGameFileWithLocalPath:@"dll_local_path" error:&error];
[gameSave saveInBackgroundWithBlock:^(BOOL succeeded, NSError *_Nullable error) {
if (succeeded) {
NSLog(@"保存成功。objectId:%@", gameSave.objectId);
} else {
// 异常处理
}
}];
上面的例子中,存档元信息字段的含义请参考云存档保存的游戏元数据