快速启动:适用于不响应引擎的 PlayFab 客户端库

开始使用不响应引擎的 PlayFab 插件。 按照此快速入门安装 PlayFab Unreal Engine 插件,并创建使用客户端库和"规划图"界面 C++ 的示例应用。

可使用"响应引擎"的 PlayFab 插件管理标题的 LiveOps,以及执行管理员、客户端和服务器操作,如:

先决条件

创建非活动项目

在"非Alal引擎"中,创建新的"非Alal 项目"。 有关详细说明,请按照 "创建新项目指南"部分

  1. 有关 项目类别 请选择 游戏
  2. 选择模板, 选择空白
  3. "项目设置"中,选择C++Blueprint
  4. 选择 无入门内容
  5. 选择项目的名称,例如MyProject

在"非活动"项目中启用 PlayFab 插件

启用 PlayFab 插件:

  1. 在“设置”菜单的“特定于游戏的设置”下,选择“插件”。
  2. 启用 PlayFab 并按所需重启"Unreal Engine"。

在 C++ 中将 PlayFab 添加为模块依赖项

在 Visual Studio 中,将 PlayFab 添加为项目中的模块 C++ 相关性:

  1. 视图菜单 打开 资源管理器 显示 C++ 您的项目文件。

  2. 在解决方案资源管理器中,导航到 Solution\Games\YourProjectName\Source ,然后打开 YourProjectName.build.cs

  3. 添加以下行:

    PrivateDependencyModuleNames.AddRange(new string[] { "PlayFab", "PlayFabCpp", "PlayFabCommon" });
    
  4. 保存所做的更改。

生成必需的 Visual Studio 项目文件

更新和生成使用 PlayFab 插件所需的 Visual Studio 项目文件:

  1. 打开文件资源管理器窗口,然后导航到项目文件所在的文件夹。
  2. 在项目的根文件夹中,右键单击 YourProjectName.uproject 文件。
  3. 从上下文菜单中,选择 "生成 Visual Studio 项目

呼叫 PlayFab C++

以下步骤将完成创建使用自定义 ID 登录到 PlayFab 的磁贴。 有关从蓝图项目登录的信息,请参阅本文后面的“从虚幻蓝图调用 PlayFab”。

创建新执行者

要创建新的执行者:

  1. 从“文件”菜单中,选择“新建 C++ 类”。

  2. 对于 "父课堂" 选择 执行者

  3. 将您的执行者命名为 LoginActor。 创建操作者之后,Unreal Engine 将自动打开开发环境,并加载 C++ LoginActor.cpp 和 LoginActor.h。

    重要

    为了进行此快速入门,您必须将操作者命名为 LoginActor。 如果为"执行者"赋予不同的名称,则必须更新此快速启动中提供的示例代码以匹配新名称。

  4. 将您的新 Actor LoginActor 从 Content Browser 拖放到 Viewport 面板中。 它现在显示在“世界大纲视图”窗格中。 如果您没有看到您的 LoginActor ,请选择显示或隐藏源面板图标。 然后在课堂下选择项目 C++ 的名称。

    显示源面板图标的内容浏览器。

登录操作者世界

向 LoginA加载项添加 PlayFab API C++ 调用

在此快速入门中,你使用 LoginWithCustomID 执行登录。 虽然LoginWithCustomId易于入门,但建议转到更安全的玩家身份验证方法以发布游戏。 请参阅登录基础知识和最佳做法,了解实现强大登录功能的信息。

LoginWithCustomID调用是在您的 LoginActor 中进行的。 要将 PlayFab 特定代码添加到您的 LoginActor

  1. 将 LoginActor.h 的内容替换为所示的代码:
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "PlayFab.h"
#include "Core/PlayFabError.h"
#include "Core/PlayFabClientDataModels.h"
#include "LoginActor.generated.h"

UCLASS()
class ALoginActor : public AActor
{
    GENERATED_BODY()
public:
    ALoginActor();
    virtual void BeginPlay() override;
    void OnSuccess(const PlayFab::ClientModels::FLoginResult& Result) const;
    void OnError(const PlayFab::FPlayFabCppError& ErrorResult) const;

    virtual void Tick(float DeltaSeconds) override;
private:
    PlayFabClientPtr clientAPI = nullptr;
};
  1. 将 LoginActor.cpp 的内容替换为以下代码。
#include "LoginActor.h"
#include "Core/PlayFabClientAPI.h"

ALoginActor::ALoginActor()
{
    PrimaryActorTick.bCanEverTick = true;
}

void ALoginActor::BeginPlay()
{
    Super::BeginPlay();
    
    GetMutableDefault<UPlayFabRuntimeSettings>()->TitleId = TEXT("144");
    
    clientAPI = IPlayFabModuleInterface::Get().GetClientAPI();

    PlayFab::ClientModels::FLoginWithCustomIDRequest request;
    request.CustomId = TEXT("GettingStartedGuide");
    request.CreateAccount = true;

    clientAPI->LoginWithCustomID(request,
        PlayFab::UPlayFabClientAPI::FLoginWithCustomIDDelegate::CreateUObject(this, &ALoginActor::OnSuccess),
        PlayFab::FPlayFabErrorDelegate::CreateUObject(this, &ALoginActor::OnError)
    );
}

void ALoginActor::OnSuccess(const PlayFab::ClientModels::FLoginResult& Result) const
{
    UE_LOG(LogTemp, Log, TEXT("Congratulations, you made your first successful API call!"));
}

void ALoginActor::OnError(const PlayFab::FPlayFabCppError& ErrorResult) const
{
    UE_LOG(LogTemp, Error, TEXT("Something went wrong with your first API call.\nHere's some debug information:\n%s"), *ErrorResult.GenerateErrorReport());
}

void ALoginActor::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);
}

提示

Visual Studio 中的 Intellisense 将指示它找不到包含文件和 PlayFab 命名空间。 你可以安全地忽略这些警告。 运行项目时,它将构建并正确执行。

完成并使用 C++ 执行

现在您已准备好在 C++ 中测试从Unreal Engine对 PlayFab 的调用。 测试调用的结果显示在 Unreal Engine 的输出日志中。

在Unreal Engine中:

  1. 显示来自 Windows 菜单的输出日志,然后选择 开发人员工具 并启用 输出日志
  2. 在工具栏中, 选择编译 ,并等待Unreal Engine完成编译。 当代码正在编译时,Unreal 会显示“正在编译 C++ 代码”。
  3. 选择 播放。 当代码运行时,Unreal 在 Output Log 窗口中显示以下内容:

LogTemp: Congratulations, you made your first successful API call!

输出日志成功调用

从Unreal Blueprints中调用 PlayFab

本部分将指导你创建一个脚本结构,该结构使用 PlayFab API 调用 LoginWithCustomID。 虽然LoginWithCustomId易于入门,但建议转到更安全的玩家身份验证方法以发布游戏。 请参阅登录基础知识和最佳做法,了解实现强大登录功能的信息。

提示

如果从蓝图项目开始,则必须将其转换为 C++ 项目,PlayFab 蓝图操作才能发挥作用。

创建规划图结构

在Unreal Engine中,从工具栏中选择 Open level Blueprint。。

示例打开蓝图级别图像

EventGraph 随即打开,其中预填充了两个操作。 Event BeginPlayEvent Tick

此快速启动中使用的操作:

  • Set Play Fab Settings
  • Login with Custom ID
  • Make ClientLoginWithCustomIDRequest
  • AddCustomEvent x 2
  • Break PlayFabError
  • Print String x 2

创建您的蓝图,如下所示:

  • 选择在Event BeginPlay的输出引脚并将其拖动到事件图表中的打开位置。 在" 可执行行动 对话框中,搜索 Set Play Fab Settings 将其添加到"规划图"。 在 Set Play Fab Settings中, 如果 Game Title id 为空,请将其设置为您游戏的 Title ID

  • 选择输出按钮 Set Play Fab Settings 然后将其拖动到打开的位置。 在" 可执行行动 对话框中,搜索 Login with Custom ID 将其添加到"规划图"。

  • 选择 Login with Custom ID 上的请求引脚并将其拖到一个空位置。 从“提供客户端登录并按 Custom ID Request 结构进行登录的操作”中,选择“Make ClientLoginWithCustomIDRequest”。

  • Make ClientLoginWithCustomIDRequest

    • 选择 创建账户
    • Custom Id 设置为 GettingStartedGuide。
  • 选择“Login with Custom ID”上的“On Success”引脚并将其拖到空位置。 在“提供代理的操作”中,搜索“Add Custom Event”,然后选择它以将其添加到蓝图中。

    • 将其命名为 OnLogin
  • 选择 故障时 引脚,然后将其拖动到空位置。 在“提供代理的操作”中,搜索“Add Custom Event”,然后选择它以将其添加到蓝图中。

    • 将其命名为 OnFailure
  • 选择输出按钮 OnLogin 然后将其拖动到空位置。 在“可执行行动”对话框中,搜索“Print String”,然后选择它以将其添加到蓝图中。

    • 在“Print String”上,将“字符串格式”值设置为“恭喜,你利用蓝图首次成功调用了 PlayFab API!”。
  • 选择输出按钮“OnFailure”,然后将其拖动到空位置。 在“可执行行动”对话框中,搜索“Print String”,然后选择它以将其添加到蓝图中。

  • 选择 错误 固定 OnFailure 并将其拖至空位置。 在“提供字符串的操作”对话框中,搜索“Break PlayFabError”,然后选择它以将其添加到蓝图中。 在“采取 PlayFab 错误结构的操作”对话框中,搜索“Break PlayFabError”,然后选择它以将其添加到蓝图中。

  • Break PlayFabError错误消息 pin 连接到 失败Print String操作中的In String pin。

完成后,蓝图应类似于以下设计:

已打开蓝图 UI

Save 蓝图,然后关闭蓝图编辑器窗口。

使用"规划图"执行 PlayFab 调用

  1. 在工具栏上,选择 播放 按钮。

  2. 运行"图文"时,"视区"窗口中显示以下输出。

    蓝图日志成功

恭喜你使用"规划图"首次成功播放Fab API 呼叫!

更多资源