开发者可以使用 统计数据界面(Stats Interface) 管理用户的应用程序 统计数据,其中可包括开发者希望追踪的任何统计数据,例如收集的物品数量、玩家通关的最快时间、胜利或失败的总次数、用户执行某个动作的次数。你可以利用统计数据来决定何时解锁成就以及如何利用排行榜中的用户排名数据。
访问统计数据界面
要访问统计数据界面函数,需从 Platform Interface调用 EOS_Platform_GetStatsInterface
函数,获取EOS_HStats柄。与所有其他界面类似,需要tick EOS_HPlatform
柄,确保完成请求后触发相应回调。
摄取统计数据
要使统计数据界面与用户的统计信息交互,必须在 开发者门户 上定义游戏的统计数据。然后可以调用 EOS_Stats_IngestStat
在应用程序中摄取统计数据,这会将统计数据提交到 EOS后端。
摄取统计数据后,需要时间来提交和处理统计数据,因此更新可能不会立即在后端生效。同样,使用统计数据的成就也需要一段时间才能解锁。
EOS_Stats_IngestStat
函数所采用的的参数如下:
参数 |
说明 |
---|---|
|
有效的 |
|
包含正摄取的统计数据相关信息的 |
|
|
|
签名与 |
若成功完成,此函数将返回 EOS_EResult
,值为 EOS_Success
;若出现任何选项错误,则返回值 EOS_InvalidParameters
。
摄取统计数据选项
EOS_Stats_IngestStatOptions
结构体的参数如下:
参数 |
说明 |
---|---|
|
设为EOS_STATS_INGESTSTAT_API_LATEST。 |
|
一个有效 |
|
包含想要摄取的统计数据信息的 |
|
要摄取的统计数据数量。 |
|
需要摄取的目标用户ID。 |
摄取数据
EOS_Stats_IngestData
结构包含特定统计数据的信息。其参数如下:
参数 |
说明 |
---|---|
|
设为 |
|
要摄取的统计数据名称。 |
|
要提交给统计数据的整数值。 |
摄取统计数据完成回调信息
操作完成后,将调用提供给 CompletionDelegate
的所有 CompletionDelegate
。它们返回 EOS_Stats_IngestStatCompleteCallbackInfo
结构,其参数如下:
参数 |
说明 |
---|---|
|
若成功完成请求,则 |
|
使用 |
|
一个有效 |
查询统计数据
EOS_Stats_QueryStats
函数可用于从EOS后端请求用户统计数据列表。操作完成时将在本地缓存统计数据,而不是通过函数本身返回统计数据。欲了解详情,参见复制统计数据部分。
EOS_Stats_QueryStats
函数采用以下参数:
参数 |
说明 |
---|---|
|
有效的 |
|
一个`EOS_Stats_QueryStatsOptions` 结构,包含正在获取统计数据所属用户的相关信息。 |
|
|
|
签名与 |
查询统计数据选项
EOS_Stats_QueryStatOptions
结构包含尝试查询的用户的相关信息,以及可选参数(其能缩小要获取的统计数据的范围)。其参数如下:
参数 |
说明 |
---|---|
|
设为 |
|
一个有效 |
|
若不是 |
|
若不是 |
|
要查询的特定统计数据名称的列表。 |
|
|
若设置了 StartTime
和 EndTime
参数,查询将限定在给定的开始时间与结束时间之间。
查询统计数据完成时调用信息
操作完成后,将调用提供给 EOS_Stats_QueryStats
的 CompletionDelegate
。它们将返回 EOS_Stats_OnQueryStatsCompleteCallbackInfo
结构,拥有以下参数:
参数 |
说明 |
---|---|
|
若成功完成请求,则 |
|
使用 |
|
一个有效 |
复制统计数据
EOS_Stats_QueryStats
成功完成操作后,将在本地缓存所请求的统计数据。然后可利用 EOS_Stats_CopyStatByIndex
或 EOS_Stats_CopyStatByName
从本地缓存获得给定统计数据的副本。
EOS统计数据结构体
用于复制统计数据信息的函数将返回 EOS_Stats_Stat
结构,其表示单个特定用户统计数据的信息。其属性如下:
属性 |
说明 |
---|---|
|
设为 |
|
开发者门户中显示的统计数据的名称。 |
|
若不是 |
|
若不是 |
|
统计数据的当前值(整数)。 |
获取统计数据计数
成功查询玩家的统计数据后,即可使用 EOS_Stats_GetStatsCount
来检查本地缓存的统计数据数量。此函数采用以下参数:
参数 |
说明 |
---|---|
|
有效的 |
|
|
此函数将返回整数,表示当前缓存的统计数据数量。
按索引复制统计数据
函数 EOS_Stats_CopyStatByIndex
根据缓存统计数据列表中的给定索引来获取统计数据副本。其参数如下:
参数 |
说明 |
---|---|
|
有效的 |
|
|
|
|
输出参数 OutStat
用于在操作完成时输出所需的 EOS_Stats_Stat
。函数返回值为 EOS_EResult
。若信息可用且成功通过 OutStat
传递,则其值为 EOS_Success
。若任意参数无效,或为输出参数提供了空指针,则其值为 EOS_InvalidParameters
;若未找到请求的统计数据,则其值为 EOS_NotFound
。
按索引选项复制统计数据
EOS_Stats_CopyStatByIndexOptions
结构,包含请求的 EOS_Stats_CopyStatByIndex
统计数据索引。其参数如下:
参数 |
说明 |
---|---|
|
设为 |
|
有效的 |
|
一个整数,指统计数据缓存列表中的索引。 |
按名称复制统计数据
EOS_Stats_CopyStatByName
函数根据开发者门户中给定的统计数据名称来获取该统计数据的副本。其参数如下:
参数 |
说明 |
---|---|
|
有效的 |
|
|
|
|
输出参数 OutStat
用于在操作完成时输出所需的 EOS_Stats_Stat
。函数返回值为 EOS_EResult
。若信息可用且成功通过 OutStat
传出,则其值为 EOS_Success
。若任意参数无效,或为输出参数提供了空指针,则其值为 EOS_InvalidParameters
。若未找到请求的统计数据,则其值为 EOS_NotFound
。
按名称选项复制统计数据
EOS_Stats_CopyStatByNameOptions
结构包含请求的 EOS_Stats_CopyStatByName
统计数据索引。其参数如下:
参数 |
说明 |
---|---|
|
设为 |
|
一个有效 |
|
正在获取其副本的统计数据的名称。 |
从缓存统计数据释放内存
使用 EOS_Stats_CopyStatByIndex
获取统计数据后,必须调用 EOS_Stats_Stat_Release
释放与该统计数据关联的内存。此函数接受 EOS_Stats_CopyStatByName
或 EOS_Stats_CopyStatByIndex
的 OutStat
参数输出的 EOS_Stats_Stat
结构。
使用限制
统计界面管理应用程序中用户的统计数据,其中可以包括开发者希望跟踪的任何统计数据,例如收集的物品数量、玩家最快完成关卡的时间、胜利或失败的总次数,或者用户执行某个动作的次数。你可以使用统计信息来决定何时解锁成就,以及如何利用排行榜中用户的排名信息。有关限制、使用配额和最佳实践的信息,请参阅
以下限制适用于整个统计信息系统:
功能 |
限制 |
---|---|
统计数据数目 |
500(每个部署) |
统计数据名称长度 |
256个字符 |
Max stats ingested per call |
3000 |
最大里程碑数(默认) |
100 |
统计数据摄取是向服务提交统计数据变更的端点,它存在速率限制(按用户)。当专用服务器代表用户提交统计数据时,限制(按用户)将不适用;在这类情况下,限制会根据当时每个部署的并发用户数(CCU)而定。
使用类型(Usage Type) |
限制(按用户)(Per-User Limit) |
限制(部署)(Per-Deployment Limit) |
---|---|---|
摄取统计数据(Ingest stats) |
每分钟60次请求, 每次请求500条统计数据 |
每分钟每5个CCU有一次请求 |
根据玩家ID获取统计数据(Get stats by Player ID) |
每分钟100次请求 |
|
根据多个玩家ID获取统计数据(Get stats by Player IDs) |
每分钟100次请求, 每次请求64位玩家, 每位玩家25条统计数据 |
|
创建统计数据(Create Stat) |
每分钟100次请求 |
|
删除统计数据(Delete Stat) |
每分钟100次请求 |