UNREAL
Quick Start
下载最新版本
在Unreal Engine运行Naver游戏SDK示例项目的方法如下所示:
在Unreal Editor运行sample/unreal-sample-4.23.1文件夹内的项目。
打开目录 -> NewMap.umap文件。
确认是否已在世界设置 -> 游戏模式设置NNGUnrealSampleGameMode。
在测试设备运行,点击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后,在开始游戏时弹出提前创建的主菜单。
拖拽BeginPlay事件的箭头选择创建微件。

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

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

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

进入图像编辑页,根据客户端修改Init函数参数。
Client Id:在NAVER账号登录开发者中心登记、获取应用程序的客户账号
Client Secret:在NAVER账号登录开发者中心登记、获取应用程序的客户密钥
Lounge Id:申请、获取官方大厅的LoungeId

回调函数(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 环境设置
打开项目设置,在平台中选择iOS。
对于右侧显示的设置值,根据下图所示方法,在Build下级的Additional Non-Shipping Linker Flags项目和Additional Shipping Linker Flags项目添加-ObjC和-lc++两个值。

NaverGameSdk Interface
Init() method
init() method是设置NaverGameSDK的方法。
ClientId:在NAVER账号登录开发者中心登记、获取应用程序的客户账号ClientId
ClientSecret:在NAVER账号登录开发者中心登记、获取应用程序的客户密钥
LoungeId:申请、获取官方大厅的LoungeId
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
美国
NaverGameSdk Delegate
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?