在本教程中,我们将介绍统计信息的版本控制概念。 在多种情况下,我们希望具有不同版本的给定统计信息。 例如,如果游戏有赛季,则很可能在新赛季开始时重置统计信息。
我们继续学习 创建基本统计信息中的示例。 想象一下,我们的射击游戏越来越受欢迎。 因此,引入了季节的概念。 每个月,游戏都会为所有玩家基础发布一个新的主题赛季。 因此,我们希望保持每个赛季的独立统计数据。
为版本控制创建统计信息定义
在上一个示例中,创建统计定义时,有一个提示,提示参数对于版本控制的重要性 VersionConfiguration
。 在这里,我们将详细介绍如何使用它及其工作原理。
public static async Task CreateStatisticDefinitionAsync(PlayFabAuthenticationContext context, string statName)
{
PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
CreateStatisticDefinitionRequest statDefinitionRequest = new CreateStatisticDefinitionRequest()
{
Name = statName,
AuthenticationContext = context,
EntityType = "title_player_account",
VersionConfiguration = new VersionConfiguration()
{
MaxQueryableVersions = 12,
ResetInterval = ResetInterval.Month,
},
Columns = new List<StatisticColumn>()
{
new StatisticColumn()
{
Name = "Longshots",
AggregationMethod = StatisticAggregationMethod.Max,
}
},
};
PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> createStatDefResult = await statsAPI.CreateStatisticDefinitionAsync(statDefinitionRequest);
}
与基本统计信息相比,此示例中的main差异是 VersionConfiguration
参数。 此参数允许我们定义一个 MaxQueryableVersions
设置,该设置指定我们可以查询的相同统计信息的多少个版本。 在本例中,我们将其设置为查询 12 个版本。
参数 ResetInterval
定义重置过程发生的频率。 此过程涉及创建一个统计信息,其配置与之前相同,但没有任何值,并且版本参数将更改如下:N = N + 1,在创建统计信息定义时 N = 0。
例如,让我们有一个统计信息,其中 version 参数等于 2,具有给定值。 现在,我们增加了该统计信息的版本,结果将是一个版本参数等于 3 且没有任何值的新统计信息。 同时,以前的统计信息保留在系统中进行查询。
可以 ResetInterval
采用多种方式工作。 在此示例中,它是每月一次,但可以根据开发人员的需求对其进行更改。 在此特定情况下,这意味着排行榜将从配置的那一刻起每月自动重置。 我们支持以下重置策略:
- 天
- 小时
- 手动
- 月
- 周
递增统计信息的版本
使用此新配置,我们可以针对不同季节拥有同一统计信息的多个版本。 但是,如果由于问题而需要手动重置排行榜并从本赛季开始,会发生什么情况呢? 在这种情况下,可以使用 API 执行手动重置。 下面是使用 SDK 的示例:
public static async Task ResetStatistic(PlayFabAuthenticationContext context, string statName)
{
PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
IncrementStatisticVersionRequest resetStatRequest = new IncrementStatisticVersionRequest()
{
AuthenticationContext = context,
Name = statName,
};
PlayFabResult<PlayFab.LeaderboardsModels.IncrementStatisticVersionResponse> resetStatResponse = await statsAPI.IncrementStatisticVersionAsync(resetStatRequest);
}
现在,我们设置为处理有关统计信息的版本控制的任何挑战。 此处的一个重要方面是,我们决定保留为版本的统计信息定义的数量将是计量,因为它们使用服务中的存储。 在此处查看有关此内容的详细信息:
- 统计信息。
结论
在本教程中,我们学习了如何执行以下作:
- 使用正确的重置策略创建统计信息
- 递增统计信息的版本