버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// 로그인 하고자 하는 IdpCode 셋팅
EKGTIdpCode idpCode = EKGTIdpCode::Kakao;

// 특정 idp로 로그인 하기
FKGTPlayer::Login(idpCode, FKGTResultDelegate::CreateLambda([=](FKGTResult result)
{
  if (result.IsSuccess())
  {
    // 플랫폼에서 발급한 현재 Player의 ID
    FString playerId = FKGTPlayer::GetCurrentPlayer().GetPlayerId();

    // 플랫폼 엑세스 토큰
    FString accessToken = FKGTPlayer::GetAccessToken();

    // 현재 IDP 인증 정보를 가져옴
    FKGTIdpProfile idpProfile = FKGTPlayer::GetCurrentPlayer().GetIdpProfile();
    
    // [TODO] 로그인이 성공하였으므로 게임 화면으로 이동합니다.
  }
  else
  {
    // IDP 로그인 혹은 플랫폼 로그인 실패
    // [TODO] 로그인 실패 시 사용자 안내 후 재 시도 하도록 하여야 합니다.

    int32 resultCode = result.GetCode();

    if (resultCode == FKGTResultCode::NetworkFailure || resultCode == FKGTResultCode::ServerTimeout || resultCode == FKGTResultCode::ServerConnectionFailed)
    {
      // [TODO] 네트워크 에러가 발생한 경우에는 유저에게 네트워크 이슈로 스타트에 실패했음을 알리고 재시도
    }
    else if (resultCode == FKGTResultCode::Forbidden)
    {
      // [TODO] CBT기간동안 허용된 유저외에는 인증이 불가능 할 수 있습니다. 유저에게 안내메시지 처리가 필요합니다.
    }
    else if (resultCode == FKGTResultCode::UserCanceled)
    {
      // [TODO] 사용자가 로그인 진행 중 취소한 상황이므로 로그인 화면을 유지 하여야 합니다.
    }
    else
    {
      // [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다. - 에러코드 및 로그 확인 후 원인 파악이 필요합니다.
    }
  }
}));

...

로그아웃

...

발췌문 삽입
로그아웃 SDK 예제
로그아웃 SDK 예제
namelogout
nopaneltrue

기본 로그아웃 UI를 사용하지 않는 로그아웃하기

발췌문 삽입
로그인 로그아웃 SDK 예제로그인
로그아웃 SDK 예제
namelogin_with_bridge_tokenlogout_custom
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// 로그아웃 런처를요청
bool 통해서showUI 전달= 받은false; bridgeToken// FStringUI를 bridgeToken노출하지 =않도록 "";설정

FKGTPlayer::LoginWithBridgeTokenLogout(bridgeTokenshowUI, FKGTResultDelegate::CreateLambda([=](FKGTResult result)
{
  if (result.IsSuccess())
  {
    // 플랫폼에서로그아웃 발급한성공
현재 Player의 ID
    FString playerId = FKGTPlayer::GetCurrentPlayer().GetPlayerId();

    // 플랫폼 엑세스 토큰[TODO] 시작 화면으로 돌아가기
  }
 FString accessTokenelse
= FKGTPlayer::GetAccessToken(); {
    // 현재로그아웃 IDP실패
인증 정보를 가져옴
    FKGTIdpProfile idpProfile = FKGTPlayer::GetCurrentPlayer().GetIdpProfile();
    
  }
}));

탈퇴

...

계정 연결

...

발췌문 삽입
계정 연결 SDK 예제
계정 연결 SDK 예제
nameconnect
nopaneltrue

기본 계정 연결 UI를 사용하지 않는 계정 연결하기

발췌문 삽입
계정 연결 SDK 예제
계정 연결 SDK 예제
nameconnect_custom
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// 로그인 하고자 하는 IdpCode 셋팅
EKGTIdpCode idpCode = EKGTIdpCode:Kakao;

// 런처를특정 통해서idp로 전달계정 받은연결 부가 정보
    TSharedPtr<FJsonObject> bridgeTokenPayload = FKGTPlayer::GetCurrentPlayer().GetBridgeTokenPayload();
    
    // [TODO] 로그인이 성공하였으므로 게임 화면으로 이동합니다하기
FKGTPlayer::Connect(idpCode, FKGTResultDelegate::CreateLambda([=](FKGTResult result)
{
  if (result.IsSuccess())
  {
    // IDP 연결 성공
	// Player ID 는 변경되지 않습니다.
  }
  else
  {
    // IDP 로그인 혹은 플랫폼 로그인 실패
    // [TODO] 로그인 실패 시 사용자 안내 후 재 시도 하도록 하여야 합니다.연결 실패
     int32 resultCode = result.GetCode();

    if (resultCode == FKGTResultCode::NetworkFailureNotAuthorized)
|| resultCode == FKGTResultCode::ServerTimeout || resultCode == FKGTResultCode::ServerConnectionFailed) {
      // {현재 로그인이 안되어 있는 경우
  // [TODO] 네트워크 에러가 발생한 경우에는 유저에게 네트워크 이슈로 스타트에 실패했음을 알리고 재시도
    }
    else if (resultCode == FKGTResultCode::ForbiddenInvalidState)
    {
      // [TODO]현재 CBT기간동안인증 허용된 유저외에는IDP 인증이 불가능계정 연결 가능한 있습니다.idp가 유저에게아닌 안내메시지경우
처리가 필요합니다.     }
    else if (resultCode == FKGTResultCode::UserCanceledAlreadyUsedIDPAccount)
    {
      // [TODO]이미 사용자가연결되어 로그인있는 진행계정이 중 취소한 상황이므로 로그인 화면을 유지 하여야 합니다.있는 경우
     }
    else
    {
      // [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다. - 에러코드 및 로그 확인 후 원인 파악이 필요합니다.
    기타 에러 발생
    }
  }
}));

...

프로필

...

내 정보 조회하기

발췌문 삽입
로그아웃 프로필 SDK 예제로그아웃
프로필 SDK 예제
namelogoutplayer_currentPlayer
nopaneltrue

기본 로그아웃 UI를 사용하지 않는 로그아웃하기

...

코드 블럭
코드 블럭
languagecpp
#include "KakaoGameV4.h"

FKGTPlayer player = FKGTPlayer::GetCurrentPlayer();

// 로그아웃플랫폼 요청playerId
boolFString showUIplayerId = falseplayer.GetPlayerId();

// UI를플랫폼 노출하지AccessToken
않도록FString 설정accessToken = FKGTPlayer::Logout(showUI, FKGTResultDelegate::CreateLambda([=](FKGTResult result)
{
  if (result.IsSuccess())
  {
  GetAccessToken();

// idpProfile 정보
FKGTIdpProfile idpProfile = player.GetIdpProfile();

내 IDP 정보 조회하기

발췌문 삽입
프로필 SDK 예제
프로필 SDK 예제
nameplayer_idpProfile
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FKGTPlayer player = FKGTPlayer::GetCurrentPlayer();

// 로그아웃IDP 성공정보 조회
FKGTIdpProfile idpProfile  // [TODO] 시작 화면으로 돌아가기
  }
  else
  {
    // 로그아웃 실패
  }
}));

탈퇴

...

= player.GetIdpProfile();
EKGTIdpCode idpCode = idpProfile.GetIdpCode();
FString idpUserId = idpProfile.GetIdpUserId();

시스템 정보

...

언어 코드 가져오기

발췌문 삽입
계정 연결 시스템 정보 SDK 예제계정 연결
시스템 정보 SDK 예제
nameconnectsystem_language_code
nopaneltrue

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString languageCode = FKGTSystem::GetLanguageCode();

국가 코드 가져오기

발췌문 삽입
계정 연결 시스템 정보 SDK 예제계정 연결
시스템 정보 SDK 예제
nameconnectsystem_country_customcode
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

//FString 로그인 하고자 하는 IdpCode 셋팅
EKGTIdpCode idpCode = EKGTIdpCode:Kakao;

// 특정 idp로 계정 연결 하기
FKGTPlayer::Connect(idpCode, FKGTResultDelegate::CreateLambda([=](FKGTResult result)
{
  if (result.IsSuccess())
  {
    // IDP 연결 성공
	// Player ID 는 변경되지 않습니다.
  }
  else
  {
    // IDP 연결 실패
    int32 resultCode = result.GetCode();

    if (resultCode == FKGTResultCode::NotAuthorized)
    {
      // 현재 로그인이 안되어 있는 경우
    }
    else if (resultCode == FKGTResultCode::InvalidState)
    {
      // 현재 인증 된 IDP 가 계정 연결 가능한 idp가 아닌 경우
    }
    else if (resultCode == FKGTResultCode::AlreadyUsedIDPAccount)
    {
      // 이미 연결되어 있는 계정이 있는 경우
    }
    else
    {
      // 기타 에러 발생
    }
  }
}));

프로필

내 정보 조회하기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FKGTPlayer player = FKGTPlayer::GetCurrentPlayer();

// 플랫폼 playerId
FString playerId = player.GetPlayerId();

// 플랫폼 AccessToken
FString accessToken = FKGTPlayer::GetAccessToken();

// idpProfile 정보
FKGTIdpProfile idpProfile = player.GetIdpProfile();

내 IDP 정보 조회하기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FKGTPlayer player = FKGTPlayer::GetCurrentPlayer();

// IDP 정보 조회
FKGTIdpProfile idpProfile = player.GetIdpProfile();
EKGTIdpCode idpCode = idpProfile.GetIdpCode();
FString idpUserId = idpProfile.GetIdpUserId();

시스템 정보

언어 코드 가져오기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString languageCode = FKGTSystem::GetLanguageCode();

국가 코드 가져오기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString countryCode = FKGTSystem::GetCountryCode();

IP 기반 국가 코드 가져오기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString geoCountryCode = FKGTSystem::GetGeoCountryCode();

기기 아이디 가져오기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString deviceId = FKGTSystem::GetDeviceId();

기기 모델 가져오기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString deviceModel = FKGTSystem::GetDeviceModel();

OS 이름 가져오기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString osName = FKGTSystem::GetOSName();

네트워크 연결 여부 가져오기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

bool isNetworkConnected = FKGTSystem::IsNetworkConnected();

연결된 네트워크 타입 가져오기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString networkType = FKGTSystem::GetNetworkType();

설정된 게임 언어 코드 가져오기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString gameLanguageCode = FKGTSystem::GetGameLanguageCode();

게임 언어 코드 설정하기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// EKGTLanguageCode languageCode = EKGTLanguageCode::EN; // 영어
// EKGTLanguageCode languageCode = EKGTLanguageCode::KO; // 한국어
// EKGTLanguageCode languageCode = EKGTLanguageCode::JA; // 일어
// EKGTLanguageCode languageCode = EKGTLanguageCode::ZH_HANT; // 중국어 (번체)
// EKGTLanguageCode languageCode = EKGTLanguageCode::ZH_HANS; // 중국어 (간체)

EKGTLanguageCode languageCode = EKGTLanguageCode::Device; // 디바이스 설정 값

FKGTSystem::SetGameLanguageCode(languageCode)

카카오 연동 기능

카카오톡 게임 메시지 수신 여부 설정하기

...

코드 블럭
languagejava
#include "KakaoGameV4.h"

// 카카오톡 게임 메시지 수신 여부 설정 뷰 띄우기
FKGTKakaoTalk::ShowSetting(FKGTResultWithIsAllowMeDelegate::CreateLambda([=](FKGTResult result, bool isAllowMe)
{
  if (result.IsSuccess())
  {
    // 카카오톡 게임 메시지 수신 여부 설정 성공
    // isAllowMe - 설정된 메시지 수신 허용 여부
  }
  else if (result.GetCode() == FKGTResultCode::NotKakaoTalkUser)
  {
    // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (카카오톡 유저가 아닌 경우)
  }
  else
  {
    // 카카오톡 게임 메시지 수신 여부 설정 실패
  }
}));

...

countryCode = FKGTSystem::GetCountryCode();

IP 기반 국가 코드 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_geo_country_code
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString geoCountryCode = FKGTSystem::GetGeoCountryCode();

기기 아이디 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_device_id
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString deviceId = FKGTSystem::GetDeviceId();

기기 모델 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_device_model
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString deviceModel = FKGTSystem::GetDeviceModel();

OS 이름 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_os_name
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString osName = FKGTSystem::GetOSName();

네트워크 연결 여부 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_is_network_connected
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

bool isNetworkConnected = FKGTSystem::IsNetworkConnected();

연결된 네트워크 타입 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_network_type
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

FString networkType = FKGTSystem::GetNetworkType();

카카오 연동 기능

...

카카오톡 게임 메시지 수신 여부 설정하기

발췌문 삽입
카카오 연동 기능 SDK 예제
카카오 연동 기능 SDK 예제
namekakao_talk_talkshow_profilesetting
nopaneltrue

코드 블럭
languagecppjava
#include "KakaoGameV4.h"

// 카카오톡 프로필 조회하기게임 메시지 수신 여부 설정 뷰 띄우기
FKGTKakaoTalk::TalkProfileShowSetting(FKGTResultWithKakaoTalkProfileDelegateFKGTResultWithIsAllowMeDelegate::CreateLambda([=](FKGTResult result, FKGTKakaoTalkProfilebool profileisAllowMe)
{
  if (result.IsSuccess())
  {
    // 카카오톡 프로필 조회 게임 메시지 수신 여부 설정 성공
    // profileisAllowMe - 로그인한설정된 유저의메시지 카카오톡수신 프로필허용 정보여부
  }
  else if (result.GetCode() == FKGTResultCode::NotKakaoTalkUser)
  {
    // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (카카오톡 유저가 아닌 경우)
  }
  else
  {
    // 카카오톡 프로필 조회카카오톡 게임 메시지 수신 여부 설정 실패
  }
}));

카카오톡

...

프로필 조회하기

발췌문 삽입
카카오 연동 기능 SDK 예제
카카오 연동 기능 SDK 예제
namekakao_talk_talk_friendsprofile
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// 게임카카오톡 친구프로필 목록 조회하기
FKGTKakaoTalk::FriendsTalkProfile(FKGTResultWithPlayerListDelegateFKGTResultWithKakaoTalkProfileDelegate::CreateLambda([=](FKGTResult result, TArray<FKGTPlayer>FKGTKakaoTalkProfile playerListprofile)
{
  if (result.IsSuccess())
  {
    // 카카오톡 게임프로필 친구 목록 조회 성공.
    for (FKGTPlayer player : playerList)
    {
      FKGTIdpProfile idpProfile = player.GetIdpProfile();
  
   FKGTKakaoFriendProfile *kakaoFriendProfile// = (FKGTKakaoFriendProfile*)&idpProfile;
    }profile - 로그인한 유저의 카카오톡 프로필 정보
  }
  else if (result.GetCode() == FKGTResultCode::NotKakaoTalkUser)
  {
    // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (카카오톡 유저가 아닌 경우)
  }
  else
  {
    // 카카오톡 게임 친구 목록프로필 조회 실패
  }
}));

카카오톡 게임

...

친구 목록 조회하기

발췌문 삽입
카카오 연동 기능 SDK 예제
카카오 연동 기능 SDK 예제
namekakao_talk_send_game_messagefriends
nopaneltrue

...

languagecpp

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// 게임 친구 목록 조회하기
FKGTKakaoTalk::Friends(FKGTResultWithPlayerListDelegate::CreateLambda([=](FKGTResult result, TArray<FKGTPlayer> playerList)
{
  if (result.IsSuccess())
  {
    // 카카오톡 게임 친구 목록 조회 성공.
    for (FKGTPlayer player : playerList)
    {
      FKGTIdpProfile idpProfile = player.GetIdpProfile();
      FKGTKakaoFriendProfile *kakaoFriendProfile = (FKGTKakaoFriendProfile*)&idpProfile;
    }
  }
  else if (result.GetCode() == FKGTResultCode::NotKakaoTalkUser)
  {
    // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (카카오톡 유저가 아닌 경우)
  }
  else
  {
    // 카카오톡 게임 친구 목록 조회 실패
  }
}));

카카오톡 게임 메시지 보내기

발췌문 삽입
카카오 연동 기능 SDK 예제
카카오 연동 기능 SDK 예제
namekakao_talk_send_game_message
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// friends API를 통해 가져온 카카오 친구 프로필
FKGTKakaoFriendProfile *kakaoFriendProfile;

// [TODO] 템플릿 Id 설정
FString templateId = TEXT("");

// [TODO] 메시지 템플릿에 설정한 인자 설정
TMap<FString, FString> argumentDic;
argumentDic.Add(TEXT("${nickname}"), kakaoFriendProfile->GetNickname())
argumentDic.Add(TEXT("rog_link"), TEXT("test=100&hello=20111"));

// 카카오톡 게임 메시지 보내기
FKGTKakaoTalk::SendGameMessage((*kakaoFriendProfile), templateId, argumentDic, FKGTResultDelegate::CreateLambda([=](FKGTResult result)
{
  if (result.IsSuccess())
  {
      // 카카오톡 채팅 메시지 보내기 실패
    }
  }
}));

카카오톡 친구 초대 메시지 전송하기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// [TODO] 팝업창으로 띄울지 여부 설정
bool isSingle = true;

// [TODO] 팝업창으로 띄울지 여부 설정
bool isPopup = true;성공
  }
  else
  {
    if (result.GetCode() == FKGTResultCode::MessageSettingDisabled)
    {
      // [TODO]받은이가 템플릿메시지 Id수신 설정거부를 FString설정한 templateId경우
= TEXT("");

// [TODO] 메시지 템플릿에}
설정한 인자 설정 TMap<FString, FString>else argumentDic;if argumentDic(result.Add(TEXT("${nickname}"), TEXT("nickname"));

FKGTKakaoTalk::SendInviteMessage(isSingle, isPopup, templateId, argumentDic, FKGTResultWithKakaoUserListDelegate::CreateLambda([=](FKGTResult result, TArray<FKGTKakaoUser> users)
{
  if (result.IsSuccess())
  {
    // 카카오톡 초대 메시지 보내기 성공
    for (FKGTKakaoUser user : usersGetCode() == FKGTResultCode::ExceedDailyUsage)
    {
      // 한명이 특정 앱에 대해 보낼 수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생
    }
    else if (result.GetCode() == FKGTResultCode::ExceedMonthlyUsage)
    {
      // 유저가 초대 메시지를 전송한 유저 목록 확인 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생
    }
   } else
 else   {
      // 카카오톡 전부채팅 메시지 실패한보내기 경우(공통된실패
원인 리턴해주기 필요)  }
  if (result.GetCode() == FKGTResultCode::MessageSettingDisabled)
    {
    }
}));

카카오톡 친구 초대 메시지 전송하기

발췌문 삽입
카카오 연동 기능 SDK 예제
카카오 연동 기능 SDK 예제
namekakao_talk_send_invite_message
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// [TODO] 팝업창으로 띄울지 여부 설정
bool isSingle = true;

// 받은이가 메시지 수신 거부를 설정한 경우
 [TODO] 팝업창으로 띄울지 여부 설정
bool isPopup = true;
  }
// [TODO] 템플릿 Id else설정
if (result.GetCode() == FKGTResultCode::ExceedDailyUsage)
    {
      // 한명이 특정 앱에 대해 보낼 수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생
    }
    elseFString templateId = TEXT("");

// [TODO] 메시지 템플릿에 설정한 인자 설정
TMap<FString, FString> argumentDic;
argumentDic.Add(TEXT("${nickname}"), TEXT("nickname"));

FKGTKakaoTalk::SendInviteMessage(isSingle, isPopup, templateId, argumentDic, FKGTResultWithKakaoUserListDelegate::CreateLambda([=](FKGTResult result, TArray<FKGTKakaoUser> users)
{
  if (result.GetCodeIsSuccess() == FKGTResultCode::ExceedMonthlyUsage)
    {
      // 한명이카카오톡 특정초대 앱에메시지 대해보내기 특정인에게성공
보낼  있는 한달 쿼터for 초과시(FKGTKakaoUser 발생user :  users)
 }     else
    {
      // 유저가 카카오톡초대 메시지를 채팅전송한 메시지유저 보내기목록 실패확인
    }

 } }));

카카오톡 채널 추가하기

...

코드 블럭
languagecpp
#include
"KakaoGameV4.h"  //else
[TODO] 채널 Id{
설정 int32 channelId = 0;// 
FKGTKakaoTalk::AddChannel(channelId, FKGTResultDelegate::CreateLambda([=](FKGTResult result)
{전부 실패한 경우(공통된 원인 리턴해주기 필요)
    if (result.IsSuccessGetCode() == FKGTResultCode::MessageSettingDisabled)
    {
      // 채널 추가 성공 받은이가 메시지 수신 거부를 설정한 경우
    }
    else if (result.GetCode() == FKGTResultCode::NotKakaoTalkUserExceedDailyUsage)
  {  {
  // 로그인  유저가 '카카오톡' 유저가 아닙니다. (카카오톡 유저가 아닌 경우)
  }
  else
  {// 한명이 특정 앱에 대해 보낼 수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생
    //}
채널 추가 실패  else }
}));

구글 게임

업적 달성 화면 보여주기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"if (result.GetCode() == FKGTResultCode::ExceedMonthlyUsage)
    {
      // 구글한명이 게임특정 업적앱에 정보 화면 보여주기
FKGTGoogleGamesAchievements::ShowAchievementView();

업적 달성

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// [TODO] 업적 아이디 설정
FString id = TEXT("");

// 업적 달성
FKGTGoogleGamesAchievements::Unlock(id);

업적 노출하기

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// [TODO] 업적 아이디 설정
FString id = TEXT("");

FKGTGoogleGamesAchievements::Reveal(id);

업적 단계 증가

...

대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생
    }
    else
    {
      // 카카오톡 채팅 메시지 보내기 실패
    }
  }
}));

카카오톡 채널 추가하기

발췌문 삽입
카카오 연동 기능 SDK 예제
카카오 연동 기능 SDK 예제
namekakao_talk_add_plus_friend
nopaneltrue

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// [TODO] 업적 아이디 설정
FString id = TEXT("");
int32 numSteps = 0;

FKGTGoogleGamesAchievements::SetSteps(id, numSteps);

업적 단계 설정

...

코드 블럭
languagecpp
#include "KakaoGameV4.h"

// [TODO] 업적 아이디 설정
FString id = TEXT("");
int32 numSteps = 0;

FKGTGoogleGamesAchievements::Increment(id, numSteps] 채널 Id 설정
int32 channelId = 0;

FKGTKakaoTalk::AddChannel(channelId, FKGTResultDelegate::CreateLambda([=](FKGTResult result)
{
  if (result.IsSuccess())
  {
    // 채널 추가 성공
  }
  else if (result.GetCode() == FKGTResultCode::NotKakaoTalkUser)
  {
    // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (카카오톡 유저가 아닌 경우)
  }
  else
  {
    // 채널 추가 실패
  }
}));