快速入门排行榜

在本指南中,我们将了解如何为排行榜服务设置开发环境。 我们还将了解如何从网站 Game Manager 创建快速排行榜。

先决条件

我们需要一个 PlayFab 帐户才能使用 PlayFab 排行榜服务。 有关创建帐户的说明,请参阅 身份验证

创建排行榜

我们将在左侧菜单中选择“进度”。

PlayFab 排行榜主菜单

现在,从上方菜单中选择“排行榜”选项卡。

PlayFab 排行榜游戏管理器

然后,我们将转到“新建排行榜”按钮并创建排行榜定义。

PlayFab 排行榜定义

在这里,我们可以配置排行榜的各个方面。 在此处详细了解可用参数以及如何创建排行榜:

最终结果应如下所示。

PlayFab 排行榜使用情况

设置环境

在这里,我们将了解如何设置开发人员环境以使用 C# SDK,但此处提供的概念也适用于其他 SDK 或纯 HTTP 请求。

设置 TitleId 和 DeveloperSecretKey

作为游戏实体进行身份验证时,需要 DeveloperSecretKey。

PlayFabSettings.staticSettings.TitleId = ""; // Change this value to your own titleId from PlayFab Game Manager
PlayFabSettings.staticSettings.DeveloperSecretKey = ""; // Change this to your title's secret key from Game Manager

创建游戏并获取密钥

  • 登录到 https://playfab.com/
  • 创建标题
    • 在“设置”下的“API 功能”部分中找到“标题 ID”。
  • 生成密钥:
    • 标题视图左上角标题名称旁边的齿轮
    • 游戏设置
    • 密钥
    • 新密钥

下面是在 Game Manager 中找到“密钥”部分时 UI 的外观。

PlayFab 排行榜密钥

以游戏身份登录

对于写入操作,我们建议使用来自游戏服务器的 TitleEntity,此方法将返回 AuthenticationContext 将用于我们发出的所有请求的 。

public static async Task<PlayFabAuthenticationContext> LoginAsTitleEntity()
{
    GetEntityTokenRequest request = new GetEntityTokenRequest()
    {
        Entity = new PlayFab.AuthenticationModels.EntityKey()
        {
            Id = PlayFabSettings.staticSettings.TitleId,
            Type = "title",
        },                
    };

    PlayFabResult<GetEntityTokenResponse> entityTokenResult = await PlayFabAuthenticationAPI.GetEntityTokenAsync(request);

    PlayFabAuthenticationContext authContext = new PlayFabAuthenticationContext
    {
        EntityToken = entityTokenResult.Result.EntityToken
    };
    
    return authContext;
}

以玩家身份登录 (创建玩家)

此方法基于返回 类型的 title_player_account实体的标识符创建玩家。 此处的详细信息: 快速入门实体

private static async Task<PlayFabAuthenticationContext> LoginAsPlayer(string customId = "GettingStartedGuide")
{
    LoginWithCustomIDRequest request = new LoginWithCustomIDRequest { CustomId = customId, CreateAccount = true };

    PlayFabResult<LoginResult> loginResult = await PlayFabClientAPI.LoginWithCustomIDAsync(request);

    return loginResult.Result.AuthenticationContext;
}

设置实体的显示名称属性

为了在 DisplayName “获取排行榜 API”的响应中提供 属性,我们需要对创建的每个实体执行以下代码,以便将实体映射到游戏的自定义显示名称。

private static async Task UpdateEntityDisplayName(PlayFabAuthenticationContext context, string customId)
{
    SetDisplayNameRequest request = new SetDisplayNameRequest()
    {
        AuthenticationContext = context,
        DisplayName = customId,
        Entity = new PlayFab.ProfilesModels.EntityKey()
        {
            Id = context.EntityId,
            Type = context.EntityType,
        },
    };

    PlayFabResult<SetDisplayNameResponse> updateNameResult = await PlayFabProfilesAPI.SetDisplayNameAsync(request);
}

另请参阅