UNREAL

Quick Start

下载最新版本

在Unreal Engine运行Naver游戏SDK示例项目的方法如下所示:

  1. 在Unreal Editor运行sample/unreal-sample-4.23.1文件夹内的项目。

  2. 打开目录 -> NewMap.umap文件。

  3. 确认是否已在世界设置 -> 游戏模式设置NNGUnrealSampleGameMode。

  4. 在测试设备运行,点击StartHome按钮,确认SDK正常运行。

在原项目应用NaverGameSDK

1. 安装插件

本指南以Unreal 4.23.1版本为标准编写而成。

  • 如果没有项目,请创建新项目。

  • 项目运行后,解压package文件夹内的NaverGameSdk_xxx.zip文件,粘贴至PlugIns文件夹。如果没有PlugIns文件夹,请新建。文件夹名称应是NaverGameSdk。

  • 重新运行虚幻引擎,运行设置的插件,确认NaverGameSDK在others时域是否正常应用。

2. 应用NaverGameSdk

插件设置完成后,告知使用Blueprint在虚幻项目应用NaverGameSdk的方法。

  • 编辑当前水平的Level Blueprint。

打开运行Level Blueprint
  • 通过设置确保打开Level Blueprint后,在开始游戏时弹出提前创建的主菜单。

  • 拖拽BeginPlay事件的箭头选择创建微件。

  • 创建微件后,选择Class的Dropbox,连接mainMenu Blueprint。

  • 拖拽创建微件的下一流程,运行Add to Viewport指令。目标是连接Return Value。

  • 打开内容浏览器的源面板,选择NaverGameSdk内容文件夹,编辑mainMenu Blueprint。

  • 回调函数(Delegate)可使用如下方法登记:

void foo() {

    // 네이버 게임 SDK 시작
    FNaverGameSdkModule::OnSdkStarted.AddUObject(this, &YourModule::OnSdkStarted);
        
    // 네이버 게임 SDK 종료
    FNaverGameSdkModule::OnSdkStopped.AddUObject(this, &YourModule::OnSdkStopped);
        
    // 인게임 메뉴 코드 수신
    FNaverGameSdkModule::OnReceiveInGameMenuCode.AddUObject(this, &YourModule::OnReceiveInGameMenuCode);
}

void YourModule::OnSdkStarted()
{
    UE_LOG(LogTemp, Warning, TEXT("OnSdkStarted"));
}

void YourModule::OnSdkStopped()
{
    UE_LOG(LogTemp, Warning, TEXT("OnSdkStopped"));
}

void YourModule::OnReceiveInGameMenuCode(const FString& InGameMenuCode)
{
    UE_LOG(LogTemp, Warning, TEXT("OnReceiveInGameMenuCode, %s"), *InGameMenuCode );
}
  • 已完成插件引擎共同设置。

  • 下面进行Android、iOS的具体环境设置。

3. Android 环境设置

  • 安卓版本只支持Gradle Build。勾选Enable Gradle Instead of Ant,转换为Gradle Build。

  • 打开ApkPackaging时域,在application节点点击添加元素按钮,添加android.requestLegacyExternalStorage="true"项目。

  • (Target SDK Version -> 30以上无需添加android.requestLegacyExternalStorage。)

4. iOS 环境设置

Naver游戏iOS SDK支持iOS 12.0及以上版本。

  • 打开项目设置,在平台中选择iOS。

  • 对于右侧显示的设置值,根据下图所示方法,在Build下级的Additional Non-Shipping Linker Flags项目和Additional Shipping Linker Flags项目添加-ObjC和-lc++两个值。

Init() method

init() method是设置NaverGameSDK的方法。

void UGLink::Init(FString ClientId, FString ClientSecret, FString LoungeId)

TerminateSdk() method

Terminate() method是终止NaverGameSDK的方法。在特定情况应终止SDK时调用。例如,运行通过OnReceiveInGameMenuCode Delegate回调传达的游戏内菜单时,应调用TerminateSdk() method关闭SDK。

void UGLink::TerminateSdk()

ExecuteHomeBanner() method

弹出登记横幅窗的方法。

void UGLink::ExecuteHomeBanner()

ExecuteSorryBanner() method

弹出登记的维护页或特定通知页的方法。

void UGLink::ExecuteSorryBanner()

ExecuteBoard(int BoardId) method

直接运行在官方大厅管理页 > SDK管理 > 公告栏管理页登记的特定公告栏的方法。

void UGLink::ExecuteBoard(int BoardId)

ExecuteFeed(int FeedId, bool IsTempFeedId) method

直接运行登记的FeedId留言的方法。如果是通过预约显示登记的预约留言,应在FeedId输入预留言的编号,并将IsTempFeedId输入为True

在预留言发布前,即使运行method也不会显示留言。

  • FeedId:留言或预留言的

  • IsTempFeedId:FeedId是留言时,显示false;FeedId是预留言时,显示true

void UGLink::ExecuteFeed(int FeedId, bool IsTempFeedId)

getCountryCode() method

获取安卓设备的countryCode。

FString UGLink::GetCountryCode()

countryCode是由2个字母构成的国家代码(ISO 3166-1 alpha-2)。利用这一代码可在代码内按国家进行分支处理。主要国家代码如下所示,其他国家代码请参考链接

国家代码

国家

CN

中国

JP

日本

KR

韩国

TH

泰国

US

美国

SDK内发生特定事件时,通过delegate通知GameEngine相关内容。

OnSdkStarted() 딜리게이트

发生在运行NaverGameSdk时。

DECLARE_MULTICAST_DELEGATE(FOnSdkStarted);

登记方式如下所示:

// 네이버 게임 SDK 시작
FNaverGameSdkModule::OnSdkStarted.AddUObject
    (this, &ANNGUnrealSampleGameMode::OnSdkStarted);

OnSdkStopped() 委托

发生在终止NaverGameSdk时。

DECLARE_MULTICAST_DELEGATE(FOnSdkStopped);

登记方式如下所示:

// 네이버 게임 SDK 종료
FNaverGameSdkModule::OnSdkStopped.AddUObject
    (this, &ANNGUnrealSampleGameMode::OnSdkStopped);

OnReceiveInGameMenuCode(const FString&) 委托

发生在NaverGameSdk运行游戏内菜单代码时。在官方大厅管理页 > SDK管理 > 横幅管理页对横幅登记“游戏内菜单”时使用。视Android和iOS平台分别传达不同登记值,因此如果输入不同值,应分别进行处理。

DECLARE_MULTICAST_DELEGATE_OneParam(
    FOnReceiveInGameMenuCode, const FString& /* In-Game Menu Code */);

登记方式如下所示:

// 인게임 메뉴 코드 수신
FNaverGameSdkModule::OnReceiveInGameMenuCode.AddUObject
    (this, &ANNGUnrealSampleGameMode::OnReceiveInGameMenuCode);

Last updated

Was this helpful?