Player Data Storage Sample

玩家数据存储范例概览

阅读时间4分钟

开始之前

玩家数据存储示例 使用 Epic账号服务 验证本地用户。这需要先将用于初始化 Epic在线服务 (EOS)SDK的客户端凭证指定给使用Epic账号服务的 应用

此示例中演示的SDK功能可以和任何受支持的身份提供商配合使用,以用于用户验证。

了解范例

玩家数据存储范例 是一个简单的文件资源管理器,用于用户帐户相关的云存储。可登录或登出帐户。登录时,可使用帐户相关文件浏览,可上传、下载、复制或删除此类文件。

玩家数据面板

要开始使用玩家数据存储范例,找到用户界面右侧的 玩家数据(Player Data) 面板,(从开发者身份验证工具)输入主机地址和用户凭证并按 登录(Log In) 按钮。

登录后,玩家数据面板会显示与用户帐户相关的文件列表(如有)。登录按钮将变更为登出,面板顶部的按钮将激活。以下功能可用:

  • 保存(Save):将当前正在编辑的文件内容上传至云端。若关闭程序时有未保存的更改,则这些更改将丢失。
  • 下载(Download):将选定的文件下载至本地高速缓存,并在文本编辑器中打开。此操作将丢弃所有未保存的更改。
  • 复制(Duplicate):复制选定文件。副本以与原文件相同的名称显示在文件列表下,但末尾会添加“_Copy”。
  • 删除(Delete):从云端删除选定文件。
  • 刷新(Refresh):刷新文件列表,但不下载文件。

控制台面板

程序操作的日志输出,包括控制台命令的结果,将显示在用户界面左下角 控制台(Console) 面板顶部的文本区域内。除了点击玩家数据面板中的按钮,还可在控制台面板底部输入控制台命令。

支持以下命令:

命令参数行为
ADDFILEFILE_NAMEFILE_DATA_PATH(可选)创建并上传名为 FILE_NAME 的空文件,或从本地磁盘上传文件(若指定 FILE_DATA_PATH
GETFILEFILE_NAME从云端下载指定文件
DUPFILESOURCE_FILE_NAMEDESTINATION_FILE_NAMESOURCE_FILE_NAME 复制到名为 DESTINATION_FILE_NAME 的新文件中
TESTFILEFILE_NAMEFILE_PATH玩家数据存储接口 获取 FILE_NAME,并将内容与 FILE_PATH 下的本地未加密文件进行对比
HELP(无)将所有上述命令的帮助信息打印至控制台输出。

你可以在 Game.cppGame::CreateConsoleCommands 函数中添加自定义控制台命令。

文件面板

文件(File) 面板显示当前选定文件的内容(在玩家数据面板内)。可在此窗口内编辑文件内容,然后在玩家数据面板或控制台面板中保存并上传文件。

进度条窗口

玩家数据存储范例执行的文件传输操作是异步操作。执行此类操作时,范例将显示 进度条(Progress Bar) 窗口,内含进度条和 取消(Cancel) 按钮。用户可点击 取消(Cancel) 中断传输。尽管玩家数据存储界面可同时支持多个传输操作,但范例一次仅能运行一个文件传输操作。

了解源代码

与数据文件交互的大部分代码都在 Samples/PlayerDataStorage/Source/PlayerDataStorage.cpp 中。以下函数直接与玩家数据存储接口交互:

函数名行为
QueryList刷新玩家数据条目列表。
StartFileDataDownload获取特定文件的内容。
StartFileDataUpload将特定文件的内容传输到云端。
AddFile上传新文件,或覆盖现有文件。
CopyFile复制文件。
RemoveFile删除文件并清除相关的本地缓存数据。
CancelCurrentTransfer取消当前文件传输(如有)。

这些函数不直接使用玩家数据存储接口,但与本地系统上的相关数据交互。构建自己的系统来管理文件的本地缓存信息时,这些函数可作为基础指南:

函数名行为
GetFileList返回本地文件列表。
SetFileList设置本地文件列表。
GetLocalData返回指定文件的本地缓存数据。若无可用本地数据,NoData 标记设为 true
SetLocalData设置指定文件的本地数据。
EraseLocalData擦除指定文件的本地数据(如有)。