跳到主要内容
版本:1.9.x

Unreal Engine

Unreal Plugin 基本说明


与传统的 SDK 应用程序方法相比,本文档旨在提供一种更简便的方法,将插件方法应用到虚幻引擎 4 和 5 开发环境中。

Plugin下载和安装

安装Unreal Plugin, 在 Unreal Engine 4, 5中配置项目的方法如下。

  1. 进入AppGuard manager 管理平台,选择 Download > Unreal Pluings 并下载最新版本。

  2. 下载的 AppGuardUnrealPlugin.zip, 文件中包含 /AppGuardSDK文件,将此AppGuardSDK 文件复制到 Project/Plugins/ 路径中。

  3. 打开Project/Source/ProjectName/ 路径中的APPNAME.Build.cs 文件后如下添加"AppGuardSDK"到 Unreal 项目内安装 AppGuard SDK 。

APPNAME.Build.cs
PublicDependencyModuleNames.AddRange(new string[] 
{
"Core", "CoreUObject", "Engine", "InputCore", "AppGuardSDK"
});

AppGuard Config文件下载和安装

  1. 进入AppGuard manager 管理平台 选择 Applying Security > 下载 > CHAPTER 2. nProtect AppGuard CONFIG 文件下载 > CONFIG FILE DOWNLOAD 并下载。

  2. 下载的 Config 文件解压后, AppGuard Config 文件由 appguard, appguard.crt, appguard.mf, appguard106000 这四个文件组成。

  3. 以上四个文件复制到下面的路径中。
    Copy To : Project/Binaries/IOS/Payload/APPNAME.app/

提示

如果Unreal Editor尚未执行 IOS 构建,那么 Project/Binaries/IOS文件夹可能不存在。 这种情况时执行一次 IOS构建后再进行以上操作。


AppGuardSDK Unreal Plugin 应用


在Delegate上注册回调函数及调用 AppGuard 初始化函数

App 运行时如被检测出违反安全策略的行为时,如果想要通过Callback获得事件,则需在Delegate上注册回调。 以及为进行 AppGuard 初始化操作,必须调用UAppGuardSDKBlueprintLibrary::Start(); 函数。 此时,该函数的调用时间应适用于运行App时最先运行的时间点

ASampleProjectGameMode.cpp
#include “AppGuardSDKPlugin.h”
#include “AppGuardSDKBlueprintLibrary.h”

void ASampleProjectGameMode::InitGame(const FString& MapName, const FString& Options, FString& ErrorMessage) {
//. 注册安全检测用回调函数
FAppGuardSDKModule::OnDetected.AddUObject(this, &ASampleProject::OnDetected); // 注册回调

//. 注册服务器认证用回调函数
FAppGuardSDKModule::OnS2AuthCompleted.AddUObject(this, &ASampleProject::OnS2AuthCompleted);

//. 为使用AppGuardCore.framework 的AppGuard 初始化
UAppGuardSDKBlueprintLibrary::Start();
}

/* 安全检测用回调函数示例 */
void ASampleProjectGameMode::OnDetected (int data) {
bool killed = data > 0;
int code = data > 0 ? data : data * -1;

/*
如果 Data 的值为正,Appguard 会在 30 秒后终止。
您必须使用下面的示例代码将其显示在用户可以看到的屏幕上。
*/
if (killed) {
//. 显示退出通知窗口,提醒用户游戏结束。
//. 退出通知窗口配置为点击确认按钮时App结束。
}
}

/* 服务器认证用回调函数示例 */
void ASampleProjectGameMode::OnS2AuthCompleted (int value, FString data) {
//. 有关服务器认证用回调函数实现部分请参考[应用服务器认证] 。
}
警告

构建 Release版本时, 请务必删除上述 安全检测用回调函数和服务器认证用回调函数内的日志输出函数


设置UserID

违反策略时AppGuard提供发送User ID到log server的SetUserId() method。

如下示例代码,在userID 部分上可将实际会话的用户ID发送为 FString 格式的数据来使用。

ASampleProjectGameMode.cpp
#include “AppGuardSDKPlugin.h”
#include “AppGuardSDKBlueprintLibrary.h”

UAppGuardSDKBlueprintLibrary::SetUserId(TEXT("userID"));

应用服务器认证(选择)


本内容是使用服务器认证时所需的内容,未使用服务器认证将与以下内容无关。

实现服务器认证用回调函数

服务器认证相关回调在Delegate注册回调及调用 AppGuard 初始化函数 部分,通过记录的 OnS2AuthCompleted() 回调method发送服务器认证操作事件。

如下示例代码,可以通过 OnS2AuthCompleted() 回调method确认服务器认证状态结果。

ASampleProjectGameMode.cpp
#include “AppGuardSDKPlugin.h”
#include “AppGuardSDKBlueprintLibrary.h”

// 服务器认证用回调函数示例
void ASampleProjectGameMode::OnS2AuthCompleted (int value, FString data)
{
switch (value)
{
case AppGuardEventType::S2Auth::S2AUTH_RESULT_SUCCESS:
/*
服务器认证成功,认证正常完成。
*/
break;
case AppGuardEventType::S2Auth::S2AUTH_RESULT_RETRY:
/*
服务器认证失败,将再次尝试认证。可能是暂时的客户端网络故障或服务器故障,
该尝试将根据内部算法可能最长进行3分钟。
*/
break;
case AppGuardEventType::S2Auth::S2AUTH_RESULT_FAIL:
/*
服务器认证彻底失败,将不再尝试服务器认证。
*/
break;
}
}
提示

如下 开始服务器认证 说明,调用 UAppGuardSDKBlueprintLibrary::SetUniqueClientId() method, 此节点起AppGuard 安全模块将尝试服务器认证,如上述示例代码所示,通过callback method发送三种状态代码。

警告

构建 Release版本时, 上述 务必删除服务器认证用回调函数内log输出函数


开始服务器认证

客户端为开始服务器认证,如下示例代码,可使用以下method使用服务器接收的相应用户会话UniqueClientID

ASampleProjectGameMode.cpp
#include “AppGuardSDKPlugin.h”
#include “AppGuardSDKBlueprintLibrary.h”

UAppGuardSDKBlueprintLibrary::SetUniqueClientId(TEXT("Formatted-Unique-Client-Id", 180));
提示

以上函数的第一个参数Formatted-Unique-Client-Id的规则及生成方法请参考**[主要 API]**。