快速启动:适用于不响应引擎的 PlayFab 客户端库
开始使用不响应引擎的 PlayFab 插件。 按照此快速入门安装 PlayFab Unreal Engine 插件,并创建使用客户端库和"规划图"界面 C++ 的示例应用。
可使用"响应引擎"的 PlayFab 插件管理标题的 LiveOps,以及执行管理员、客户端和服务器操作,如:
玩家身份验证。
管理虚拟项目和货币。
创建社交功能,如好友列表。
先决条件
- PlayFab 开发人员帐户。
- 为虚幻引擎配置的 Visual Studio 安装。 有关配置 Visual Studio 的信息,请参阅 安装Visual Studio for Unreal Engine。
- Unreal Engine的安装。 有关安装 Unreal Engine 的信息,请参阅 Unreal Engine安装指南。
- PlayFab Unreal 插件的安装。 您可以从 Unreal Engine marketplace安装 Unreal 插件。
创建非活动项目
在"非Alal引擎"中,创建新的"非Alal 项目"。 有关详细说明,请按照 "创建新项目指南"部分。
- 有关 项目类别 请选择 游戏。
- 在 选择模板, 选择空白。
- 在 "项目设置"中,选择C++或Blueprint。
- 选择 无入门内容。
- 选择项目的名称,例如MyProject。
在"非活动"项目中启用 PlayFab 插件
启用 PlayFab 插件:
- 在“设置”菜单的“特定于游戏的设置”下,选择“插件”。
- 启用 PlayFab 并按所需重启"Unreal Engine"。
在 C++ 中将 PlayFab 添加为模块依赖项
在 Visual Studio 中,将 PlayFab 添加为项目中的模块 C++ 相关性:
从 视图菜单 打开 资源管理器 显示 C++ 您的项目文件。
在解决方案资源管理器中,导航到 Solution\Games\YourProjectName\Source ,然后打开 YourProjectName.build.cs。
添加以下行:
PrivateDependencyModuleNames.AddRange(new string[] { "PlayFab", "PlayFabCpp", "PlayFabCommon" });
保存所做的更改。
生成必需的 Visual Studio 项目文件
更新和生成使用 PlayFab 插件所需的 Visual Studio 项目文件:
- 打开文件资源管理器窗口,然后导航到项目文件所在的文件夹。
- 在项目的根文件夹中,右键单击 YourProjectName.uproject 文件。
- 从上下文菜单中,选择 "生成 Visual Studio 项目。
呼叫 PlayFab C++
以下步骤将完成创建使用自定义 ID 登录到 PlayFab 的磁贴。 有关从蓝图项目登录的信息,请参阅本文后面的“从虚幻蓝图调用 PlayFab”。
创建新执行者
要创建新的执行者:
从“文件”菜单中,选择“新建 C++ 类”。
对于 "父课堂" 选择 执行者。
将您的执行者命名为 LoginActor。 创建操作者之后,Unreal Engine 将自动打开开发环境,并加载 C++ LoginActor.cpp 和 LoginActor.h。
重要
为了进行此快速入门,您必须将操作者命名为 LoginActor。 如果为"执行者"赋予不同的名称,则必须更新此快速启动中提供的示例代码以匹配新名称。
将您的新 Actor LoginActor 从 Content Browser 拖放到 Viewport 面板中。 它现在显示在“世界大纲视图”窗格中。 如果您没有看到您的 LoginActor ,请选择显示或隐藏源面板图标。 然后在课堂下选择项目 C++ 的名称。
向 LoginA加载项添加 PlayFab API C++ 调用
在此快速入门中,你使用 LoginWithCustomID 执行登录。 虽然LoginWithCustomId
易于入门,但建议转到更安全的玩家身份验证方法以发布游戏。 请参阅登录基础知识和最佳做法,了解实现强大登录功能的信息。
LoginWithCustomID
调用是在您的 LoginActor 中进行的。 要将 PlayFab 特定代码添加到您的 LoginActor:
- 将 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;
};
- 将 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中:
- 显示来自 Windows 菜单的输出日志,然后选择 开发人员工具 并启用 输出日志。
- 在工具栏中, 选择编译 ,并等待Unreal Engine完成编译。 当代码正在编译时,Unreal 会显示“正在编译 C++ 代码”。
- 选择 播放。 当代码运行时,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 BeginPlay
和 Event 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。
完成后,蓝图应类似于以下设计:
Save 蓝图,然后关闭蓝图编辑器窗口。
使用"规划图"执行 PlayFab 调用
在工具栏上,选择 播放 按钮。
运行"图文"时,"视区"窗口中显示以下输出。
恭喜你使用"规划图"首次成功播放Fab API 呼叫!
更多资源
- 蓝图可视化脚本的Unreal Engine文档。
- Unreal Engine 文档。