/
Unreal ํด๋ผ์ด์–ธํŠธ SDK API

Unreal ํด๋ผ์ด์–ธํŠธ SDK API


์ดˆ๊ธฐํ™” ๋ฐ ์ƒํƒœ๋ณ€ํ™” ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ


SDK ์ดˆ๊ธฐํ™”

#include "KakaoGameV4.h" /** * Unreal Editor์— ์„ค์ •ํ•œ ์ •๋ณด๋กœ ์ดˆ๊ธฐํ™” ์ˆ˜ํ–‰ */ FKGTApplication::InitSDK();

์Šคํƒ€ํŠธ (Start) ํ•˜๊ธฐ

#include "KakaoGameV4.h" FKGTApplication::Start(FKGTResultDelegate::CreateLambda([=](FKGTResult result) { if (result.IsSuccess()) { // ์Šคํƒ€ํŠธ๊ฐ€ ์„ฑ๊ณต ํ•œ ๊ฒฝ์šฐ // ์ž๋™๋กœ๊ทธ์ธ ์—ฌ๋ถ€ bool isLoggedIn = FKGTPlayer::IsLoggedIn(); if (isLoggedIn) { // ํ”Œ๋žซํผ์—์„œ ๋ฐœ๊ธ‰ํ•œ ํ˜„์žฌ Player์˜ ID FString playerId = FKGTPlayer::GetCurrentPlayer().GetPlayerId(); // ํ”Œ๋žซํผ ์—‘์„ธ์Šค ํ† ํฐ FString accessToken = FKGTPlayer::GetAccessToken(); // ํ˜„์žฌ IDP ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ด FKGTIdpProfile idpProfile = FKGTPlayer::GetCurrentPlayer().GetIdpProfile(); // [TODO] ๊ฒŒ์ž„ ํ™”๋ฉด์œผ๋กœ ์ด๋™ ํ•ฉ๋‹ˆ๋‹ค. } else { // [TODO] ์ž๋™๋กœ๊ทธ์ธ์ด ์•ˆ ๋œ ๊ฒฝ์šฐ ๋กœ๊ทธ์ธ ํ™”๋ฉด์œผ๋กœ ์ด๋™ ํ•ฉ๋‹ˆ๋‹ค. } } else { // ์Šคํƒ€ํŠธ๊ฐ€ ์‹คํŒจ ํ•œ ๊ฒฝ์šฐ - ์ดˆ๊ธฐํ™”๊ฐ€ ์‹คํŒจํ•œ ๊ฒฝ์šฐ ์ด๋ฏ€๋กœ ์Šคํƒ€ํŠธ๋ฅผ ์žฌ์‹œ๋„ ํ•˜๊ฑฐ๋‚˜ ์•ฑ์„ ์ข…๋ฃŒ ํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. int32 resultCode = result.GetCode(); if (resultCode == FKGTResultCode::NetworkFailure || resultCode == FKGTResultCode::ServerTimeout || resultCode == FKGTResultCode::ServerConnectionFailed) { // [TODO] ๋„คํŠธ์›Œํฌ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์—๋Š” ์œ ์ €์—๊ฒŒ ๋„คํŠธ์›Œํฌ ์ด์Šˆ๋กœ ์Šคํƒ€ํŠธ์— ์‹คํŒจํ–ˆ์Œ์„ ์•Œ๋ฆฌ๊ณ  ์žฌ์‹œ๋„ } else { // [TODO] ๋‚˜๋จธ์ง€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์—๋Š” ์—๋Ÿฌ ์•ˆ๋‚ด ํ›„ ์Šคํƒ€ํŠธ ์žฌ์‹œ๋„ ์š”์ฒญ ํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. - ๋ฌธ์ œ๊ฐ€ ๋ฐ˜๋ณตํ•ด์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์—๋Ÿฌ์ฝ”๋“œ ๋ฐ ๋กœ๊ทธ ํ™•์ธ ํ›„ ์›์ธ ํŒŒ์•…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. } } }));

Pause ํ•˜๊ธฐ

#include "KakaoGameV4.h" // ๊ฒŒ์ž„์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ƒํƒœ ์ผ ๋•Œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค (์˜ˆ : ๋‹ค๋ฅธ ์•ฑ์œผ๋กœ ์ „ํ™˜ํ•˜๊ฑฐ๋‚˜ ํ™ˆ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์ข…๋ฃŒ) // ApplicationWillEnterBackgroundDelegate๋ฅผ ์ด์šฉํ•˜์—ฌ SDK Pause๊ฐ€ ํ˜ธ์ถœ ๋  ์ˆ˜ ์žˆ๋„๋ก ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. FCoreDelegates::ApplicationWillEnterBackgroundDelegate.AddUObject(this, &UApplicationWidget::Pause); FKGTApplication::Pause(FKGTResultDelegate::CreateLambda([=](FKGTResult result) { // result๋Š” ํ•ญ์ƒ ์„ฑ๊ณต(200) ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. }));

Resume ํ•˜๊ธฐ

์œˆ๋„์šฐ์ฆˆ ํ™˜๊ฒฝ์—์„œ ์ž๋™๋กœ๊ทธ์ธ ์„ค์ •ํ•˜๊ธฐ

๋กœ๊ทธ์ธ


๊ธฐ๋ณธ ๋กœ๊ทธ์ธ UI๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋กœ๊ทธ์ธํ•˜๊ธฐ

๋Ÿฐ์ฒ˜๋ฅผ ํ†ตํ•ด์„œ ๋กœ๊ทธ์ธํ•˜๊ธฐ

๋กœ๊ทธ์•„์›ƒ


๊ธฐ๋ณธ ๋กœ๊ทธ์•„์›ƒ UI๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋กœ๊ทธ์•„์›ƒํ•˜๊ธฐ

ํƒˆํ‡ด


๊ธฐ๋ณธ ํƒˆํ‡ด UI๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํƒˆํ‡ดํ•˜๊ธฐ

๊ณ„์ • ์—ฐ๊ฒฐ


๊ธฐ๋ณธ ๊ณ„์ • ์—ฐ๊ฒฐ UI๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ณ„์ • ์—ฐ๊ฒฐํ•˜๊ธฐ

ํ”„๋กœํ•„


๋‚ด ์ •๋ณด ์กฐํšŒํ•˜๊ธฐ

๋‚ด IDP ์ •๋ณด ์กฐํšŒํ•˜๊ธฐ

ย 

์‹œ์Šคํ…œ ์ •๋ณด


์–ธ์–ด ์ฝ”๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ

๊ตญ๊ฐ€ ์ฝ”๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ

IP ๊ธฐ๋ฐ˜ ๊ตญ๊ฐ€ ์ฝ”๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ

๊ธฐ๊ธฐ ์•„์ด๋”” ๊ฐ€์ ธ์˜ค๊ธฐ

๊ธฐ๊ธฐ ๋ชจ๋ธ ๊ฐ€์ ธ์˜ค๊ธฐ

OS ์ด๋ฆ„ ๊ฐ€์ ธ์˜ค๊ธฐ

๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ์—ฌ๋ถ€ ๊ฐ€์ ธ์˜ค๊ธฐ

์—ฐ๊ฒฐ๋œ ๋„คํŠธ์›Œํฌ ํƒ€์ž… ๊ฐ€์ ธ์˜ค๊ธฐ

์นด์นด์˜ค ์—ฐ๋™ ๊ธฐ๋Šฅ


์นด์นด์˜คํ†ก ๊ฒŒ์ž„ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹  ์—ฌ๋ถ€ ์„ค์ •ํ•˜๊ธฐ

์นด์นด์˜คํ†ก ํ”„๋กœํ•„ ์กฐํšŒํ•˜๊ธฐ

์นด์นด์˜คํ†ก ๊ฒŒ์ž„ ์นœ๊ตฌ ๋ชฉ๋ก ์กฐํšŒํ•˜๊ธฐ

์นด์นด์˜คํ†ก ๊ฒŒ์ž„ ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๊ธฐ

์นด์นด์˜คํ†ก ์นœ๊ตฌ ์ดˆ๋Œ€ ๋ฉ”์‹œ์ง€ ์ „์†กํ•˜๊ธฐ

์นด์นด์˜คํ†ก ์ฑ„๋„ ์ถ”๊ฐ€ํ•˜๊ธฐ

๋‚ด ์ดˆ๋Œ€ ๋ฉ”์‹œ์ง€๋กœ ๊ฐ€์ž…ํ•œ ์นœ๊ตฌ ๋ชฉ๋ก ์กฐํšŒํ•˜๊ธฐ

๋‚ด๊ฐ€ ์ดˆ๋Œ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ ์นœ๊ตฌ ์ˆซ์ž ์กฐํšŒํ•˜๊ธฐ

Related content