버전 비교

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

...

minLevel1
maxLevel6

...

outlinefalse

...

style

...

none
typelist

...

printablefalse

...

초기화 및 상태변화 이벤트 처리

...

SDK 초기화

발췌문 삽입
초기화 및 상태변화 이벤트 처리 SDK 예제
초기화 및 상태변화 이벤트 처리 SDK 예제
nameapplication_init_sdk
nopaneltrue

코드 블럭
languagec#
using KakaoGame.API;

KGTApplication.InitSDK();

스타트 (Start) 하기

발췌문 삽입
초기화 및 상태변화 이벤트 처리 SDK 예제
초기화 및 상태변화 이벤트 처리 SDK 예제
nameapplication_start
nopaneltrue

코드 블럭
languagec#
using KakaoGame.API;

KGTApplication.Start((result) =>
{
    if (result.IsSuccess)
    {
        // Start 성공
        if (KGTPlayer.IsLoggedIn) 
        {
            // 자동 로그인 성공
            // 플랫폼에서 발급한 현재 Player의 ID
            string playerId = KGTPlayer.CurrentPlayer.PlayerId;
            // 플랫폼 액세스 토큰
            string accessToken = KGTPlayer.AccessToken;
            // 현재 IDP 인증 정보를 가져옴
            var idpProfile = KGTPlayer.CurrentPlayer.IdpProfile;
            // [TODO] 게임 서버 로그인 및 게임 화면으로 이동
        } 
        else 
        {
            // 자동 로그인 정보 없음, 로그인 API 호출
        }
    }
    else 
    {
        if (result.code == KGTResultCode.NetworkFailure ||
            result.code == KGTResultCode.ServerTimeout ||
            result.code == KGTResultCode.ServerConnectionFailed) 
        {
            // [TODO] 네트워크 에러가 발생한 경우에는 유저에게 네트워크 이슈로 스타트에 실패했음을 알리고 재시도
        } 
        else 
        {
            // [TODO] 유저에게 에러가 발생했음을 알림. 에러 원인 추적을 위해 에러코드도 포함된 문구이면 좋음.
        }
    }
});

Pause 하기

발췌문 삽입
초기화 및 상태변화 이벤트 처리 SDK 예제
초기화 및 상태변화 이벤트 처리 SDK 예제
nameapplication_pause
nopaneltrue

코드 블럭
languagec#
using KakaoGame.API;
 
// appDelegate의 백그라운드 이동 함수에서 구현
// [주의] OnApplicationPause 구현합니다.
// [주의] OnApplicationFocus에서는 구현하지 않도록 합니다.
void OnApplicationPause(bool paused) {
    // 게임이 백그라운드로 이동되었을 때 실행해야 할 메소드
    // Pause API는 항상 성공을 반환합니다.
    // 따라서 게임에서 별도로 result를 체크하지 않으셔도 됩니다.
    if (paused)
    {
        KGTApplication.Pause((result) => {});
    }
}

Resume 하기

발췌문 삽입
초기화 및 상태변화 이벤트 처리 SDK 예제
초기화 및 상태변화 이벤트 처리 SDK 예제
nameapplication_resume
nopaneltrue

코드 블럭
languagec#
using KakaoGame.API;
 
// appDelegate의 백그라운드 이동 함수에서 구현
// [주의] OnApplicationPause 구현합니다.
// [주의] OnApplicationFocus에서는 구현하지 않도록 합니다.
void OnApplicationPause(bool paused) {
    if (!paused) // 포그라운드로 이동한 상태
    {
        // 게임이 포그라운드로 이동되었을 때 실행해야 할 메소드
        KGTApplication.Resume((result) => 
        {
            if (result.IsSuccess) 
            {
                // [TODO] resume이 성공 한 경우 게임 화면을 재개합니다.
            } 
            else 
            {
                // [TODO] resume이 실패 한 경우 인증 실패 면 로그인 화면으로, 그외의 경우는 에러 팝업을 띄우고 재시도 여부를 확인합니다.
                if (result.code == KGTResultCode.AuthFailure ||
                    result.code == KGTResultCode.IdpAuthFailure) 
                {
                    // [TODO] 인증 실패의 경우 시작 화면으로 이동해서 다시 신규 로그인 flow를 수행합니다.
                } 
                else 
                {
                    // [TODO] 나머지 에러가 발생한 경우 경우 에러 안내 후 resume 을 재시도 합니다.
                }
            }
        });
    }
}

윈도우즈 환경에서 자동로그인 설정하기

발췌문 삽입
초기화 및 상태변화 이벤트 처리 SDK 예제
초기화 및 상태변화 이벤트 처리 SDK 예제
nameapplication_set_use_auto_login
nopaneltrue

코드 블럭
languagec#
using KakaoGame.API;

// 자동로그인사용 유무를 세팅, 세팅하지 않으면 사용하지 않음 상태로 세팅
// 자동로그인사용설정으로 로그인이 성공하면 자동로그인정보가 생성됨
// 자동로그인정보가 존재하면 다음 KGTApplication의 start시에 자동로그인이 진행됨으로 자동로그인정보를 제거하려면 로그아웃을 진행해야함
bool useAutoLogin = true;
KGTApplication.UseAutoLogin = useAutoLogin;

로그인

...

발췌문 삽입
로그인 SDK 예제
로그인 SDK 예제
namelogin
nopaneltrue

기본 로그인 UI를

...

사용하지 않는 로그인하기

발췌문 삽입
로그인 SDK 예제
로그인 SDK 예제
namelogin_custom
nopaneltrue

코드 블럭
languagec#
using KakaoGame.API;

KGTIdpCode idpCode = KGTIdpCode.Kakao;

KGTPlayer.Login(idpCode, (result) =>
{
    if (result.IsSuccess) 
    {
        // 로그인 성공 처리.
        // 플랫폼에서 발급한 현재 Player의 ID
        string playerId = KGTPlayer.CurrentPlayer.PlayerId;
        // 플랫폼 액세스 토큰
        string accessToken = KGTPlayer.AccessToken;
        // 현재 IDP 인증 정보를 가져옴
        var idpProfile = KGTPlayer.CurrentPlayer.IdpProfile;
        // [TODO] 게임 서버 로그인 및 게임 화면으로 이동
    } 
    else 
    {
        // 유저 캔슬로 인한 로그인 실패.
 로그인 실패 처리.
        if (result.code == KGTResultCode.NetworkFailure ||
   }); 
});

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

...

코드 블럭
languagec#
using KakaoGame.API;

KGTIdpCode idpCode = KGTIdpCode.Kakao;

KGTPlayer.Login(idpCode, (result) =>
{         result.code == KGTResultCode.ServerTimeout ||
           if (result.IsSuccess.code == KGTResultCode.ServerConnectionFailed) 
    {    {
    // 로그인 성공  처리.    // [TODO] 네트워크 에러가 발생한 경우에는 //로그인 플랫폼에서재시도 발급한요청 현재하여야 Player의합니다.
ID        } string
playerId = KGTPlayer.CurrentPlayer.PlayerId;      else if  // 플랫폼 액세스 토큰(result.code == KGTResultCode.Forbidden) 
        {
string accessToken = KGTPlayer.AccessToken;         // 현재[TODO] IDPCBT기간동안 인증허용된 정보를유저외에는 가져옴인증이 불가능   있습니다. 유저에게 안내메시지 노출 이후, var idpProfile = KGTPlayer.CurrentPlayer.IdpProfile;확인 클릭시, 앱을 종료하도록 구현합니다.
        } 
 // [TODO] 게임 서버 로그인  게임 화면으로else 이동if (result.code == KGTResultCode.UserCanceled) 
}      else  {
   {         // [TODO] 사용자가 로그인 실패 처리.
     진행 중 취소한 상황이므로 로그인 화면을 유지 하여야 합니다.
  if (result.code == KGTResultCode.NetworkFailure ||  } 
        else result.code
== KGTResultCode.ServerTimeout ||      {
      result.code == KGTResultCode.ServerConnectionFailed) 
        {
            // [TODO] 네트워크나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다.
        }    // 에러코드  로그 확인  else원인 if파악이 (result필요합니다.code
== KGTResultCode.Forbidden)       }
  {             // [TODO] CBT기간동안 허용된 유저외에는 인증이 불가능 할 수 있습니다. 유저에게 안내메시지 노출 이후, 확인 클릭시, 앱을 종료하도록 구현합니다.});
});

런처를 통해서 로그인하기

발췌문 삽입
로그인 SDK 예제
로그인 SDK 예제
namelogin_with_bridge_token
nopaneltrue

코드 블럭
languagec#
using KakaoGame.API;

// 런처를 통해서 전달 받은 bridgeToken
string bridgeToken = "";

KGTPlayer.LoginWithBridgeToken(bridgeToken, (result) =>
{
    if (result.IsSuccess) 
 }   {
      else  if (result.code == KGTResultCode.UserCanceled)// 로그인 성공 처리.
        // {플랫폼에서 발급한 현재 Player의 ID
        // [TODO] 사용자가 로그인 진행 중 취소한 상황이므로 로그인 화면을 유지 하여야 합니다.
  string playerId = KGTPlayer.CurrentPlayer.PlayerId;
        // 플랫폼 액세스 토큰
     }   string accessToken = KGTPlayer.AccessToken;
   else     // 현재 IDP 인증 정보를 {가져옴
        var idpProfile =  // [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다.KGTPlayer.CurrentPlayer.IdpProfile;
        // [TODO] 게임 서버 로그인 및 게임 화면으로 이동
    } 
    else 
    {
        // 에러코드 및 로그 확인 후 원인 파악이 필요합니다.
 로그인 실패 처리.
        if (result.code == KGTResultCode.NetworkFailure ||
       }     });
});

런처를 통해서 로그인하기

...

코드 블럭
languagec#
using KakaoGame.API;

// 런처를 통해서 전달 받은 bridgeToken
string bridgeToken = "";

KGTPlayer.LoginWithBridgeToken(bridgeToken, (result) =>
{result.code == KGTResultCode.ServerTimeout ||
            result.code == KGTResultCode.ServerConnectionFailed) 
     if (result.IsSuccess)  {
   {         // 로그인[TODO] 성공 처리.
  네트워크 에러가 발생한 경우에는 로그인 재시도 요청 하여야 합니다.
     // 플랫폼에서 발급한 현재} Player의
ID        else string playerIdif (result.code == KGTPlayer.CurrentPlayer.PlayerId;KGTResultCode.Forbidden) 
       // 플랫폼{
액세스 토큰         string accessToken = KGTPlayer.AccessToken;
        // 현재 IDP 인증 정보를 가져옴
  // [TODO] CBT기간동안 허용된 유저외에는 인증이 불가능 할 수 있습니다. 유저에게 안내메시지 노출 이후, 확인 클릭시, 앱을 종료하도록 구현합니다.
     var idpProfile = KGTPlayer.CurrentPlayer.IdpProfile; } 
        // [TODO] 게임 서버 로그인 및 게임 화면으로 이동else if (result.code == KGTResultCode.UserCanceled) 
       } {
    else      {  // [TODO] 사용자가 로그인 진행  취소한 //상황이므로 로그인 실패 처리화면을 유지 하여야 합니다.
        if} (result.code
== KGTResultCode.NetworkFailure ||      else 
     result.code == KGTResultCode.ServerTimeout ||{
            result.code == KGTResultCode.ServerConnectionFailed) 
        {
            // // [TODO] 네트워크나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다.
        }    // 에러코드  로그 확인  else원인 if파악이 (result필요합니다.code
== KGTResultCode.Forbidden)       }
  {             // [TODO] CBT기간동안 허용된 유저외에는 인증이 불가능 할 수 있습니다. 유저에게 안내메시지 노출 이후, 확인 클릭시, 앱을 종료하도록 구현합니다.});
});

로그아웃

...

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

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

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

코드 블럭
languagec#
using KakaoGame.API;

KGTPlayer.Logout(false, (result) =>
{
    if (result.IsSuccess) 
    {
  }      //    else if (result.code == KGTResultCode.UserCanceled) 
        {
   로그아웃 성공
        // [TODO] 사용자가시작 로그인화면으로 진행돌아가기
 취소한 상황이므로 로그인 화면을} 유지
하여야 합니다.   else 
    }{
        // else로그아웃 실패
        {
     }
});

탈퇴

...

발췌문 삽입
탈퇴 SDK 예제
탈퇴 SDK 예제
nameunregister
nopaneltrue

기본 탈퇴 UI를 사용하지 않는 탈퇴하기

발췌문 삽입
탈퇴 SDK 예제
탈퇴 SDK 예제
nameunregister_custom
nopaneltrue

코드 블럭
languagec#
using KakaoGame.API;

KGTPlayer.Unregister(false, (result) =>
{
    if (result.IsSuccess) //
[TODO] 나머지 에러가 발생한 경우에는{
에러 안내  로그인 재시도 요청 하여야 합니다.  // 탈퇴 성공
        // 에러코드 및 로그 확인 후 원인 파악이 필요합니다. [TODO] 시작 화면으로 돌아가기
    } 
    else 
    {
        // 탈퇴 }실패
    });
});

...

계정 연결

...

발췌문 삽입
로그아웃 계정 연결 SDK 예제로그아웃
계정 연결 SDK 예제
namelogoutconnect
nopaneltrue

기본

...

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

발췌문 삽입
로그아웃 계정 연결 SDK 예제로그아웃
계정 연결 SDK 예제
namelogoutconnect_uicustom
nopaneltrue

코드 블럭
languagec#
using KakaoGame.API;

KGTPlayer.Logout(trueKGTIdpCode idpCode = KGTIdpCode.Kakao;

KGTPlayer.Connect(idpCode, (result) =>
{
    if (result.IsSuccess) 
    {
        // 로그아웃 성공계정 연결 성공
    } 
    else if (result.code == KGTResultCode.NotAuthorized) 
    {
        // 현재 [TODO]인증이 시작안되어 화면으로있는 돌아가기경우
    }
    else if  else(result.code == KGTResultCode.InvalidState) 
    {
        // 로그아웃이미 실패연결되어 있는 경우
  }
});

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

...

코드 블럭
languagec#
using KakaoGame.API;

KGTPlayer.Logout(false, (result) =>
{
    if (result.IsSuccess  }
    else if (result.code == KGTResultCode.AlreadyUsedIDPAccount) 
    {
        // 로그아웃이미 성공사용중인 IDP계정으로 연결을 시도한 경우
    //}
[TODO] 시작 화면으로 돌아가기
    } 
    else 
    {
        // 로그아웃밖의 실패에러
    }
});

...

프로필

...

내 정보 조회하기

발췌문 삽입
탈퇴 프로필 SDK 예제탈퇴
프로필 SDK 예제
nameunregisterplayer_currentPlayer
nopaneltrue

...

코드 블럭
languagec#
using KakaoGame.API;

KGTPlayer player = KGTPlayer.CurrentPlayer;

내 IDP 정보 조회하기

발췌문 삽입
계정 연결 프로필 SDK 예제계정 연결
프로필 SDK 예제
nameconnectplayer_idpProfile
nopaneltrue

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

...

코드 블럭
languagec#
using KakaoGame.API;

KGTIdpProfile idpProfile = KGTPlayer.CurrentPlayer.IdpProfile;

시스템 정보

...

언어 코드 가져오기

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

코드 블럭
languagec#
using KakaoGame.API;


KGTPlayer.Connect((result)string languageCode =>
{
    if (result.IsSuccess) 
    {
        // 계정 연결 성공
    } 
    else if (result.code == KGTResultCode.NotAuthorized) 
    {
        // 현재 인증이 안되어 있는 경우
    }
    else if (result.code == KGTResultCode.InvalidState) 
    {
        // 이미 연결되어 있는 경우
    }
    else if (result.code == KGTResultCode.AlreadyUsedIDPAccount) 
    {
        // 이미 사용중인 IDP계정으로 연결을 시도한 경우
    }
    else 
    {
        // 그 밖의 에러
    }
});

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

...

 KGTSystem.LanguageCode;

국가 코드 가져오기

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

코드 블럭
languagec#
using KakaoGame.API;

string countryCode = KGTSystem.CountryCode;

IP 기반 국가 코드 가져오기

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

코드 블럭
languagec#
using KakaoGame.API;

string geoCountryCode = KGTSystem.GeoCountryCode;

기기 아이디 가져오기

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

코드 블럭
languagec#
using KakaoGame.API;

string deviceId = KGTSystem.DeviceId;

기기 모델 가져오기

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

코드 블럭
languagec#
using KakaoGame.API;

string deviceModel = KGTSystem.DeviceModel;

OS 이름 가져오기

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

코드 블럭
languagec#
using KakaoGame.API;

KGTIdpCodestring idpCodeosName = KGTIdpCodeKGTSystem.Kakao;

KGTPlayer.Connect(idpCode, (result) =>
{
    if (result.IsSuccess) 
    {
        // 계정 연결 성공
    } 
    else if (result.code == KGTResultCode.NotAuthorized) 
    {
        // 현재 인증이 안되어 있는 경우
    }
    else if (result.code == KGTResultCode.InvalidStateOsName;

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

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

코드 블럭
languagec#
using KakaoGame.API;

bool isNetworkConnected = KGTSystem.IsNetworkConnected;

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

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

코드 블럭
languagec#
using KakaoGame.API;

string networkType = KGTSystem.NetworkType;

카카오 연동 기능

...

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

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

코드 블럭
languagec#
using KakaoGame.API;

KGTKakaoTalk.ShowSetting((result) => 
{
    if (result.IsSucces) 
    {
        // 이미 연결되어 있는 경우카카오톡 게임 메시지 수신 여부 설정 성공
    }
    else if (result.code == KGTResultCode.AlreadyUsedIDPAccountNotKakaoTalkUser) 
    {
        // 이미 사용중인 IDP계정으로 연결을 시도한 경우 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
    }
    else 
    {
        // 그 밖의 에러 카카오톡 게임 메시지 수신 여부 설정 실패
    }
});

카카오톡 프로필

...

조회하기

발췌문 삽입
프로필 카카오 연동 기능 SDK 예제프로필
카카오 연동 기능 SDK 예제
nameplayer_currentPlayerkakao_talk_talk_profile
nopaneltrue

코드 블럭
languagec#
using KakaoGame.API;

KGTPlayer player = KGTPlayer.CurrentPlayer;

내 IDP 정보 조회하기

...

코드 블럭
languagec#
using KakaoGame.API;

KGTIdpProfile idpProfile = KGTPlayer.CurrentPlayer.IdpProfile;

계정 관리 페이지 띄우기

...

코드 블럭
languagec#
using KakaoGame.API;

KGTPlayer.OpenMyPage((result) =>
{
    if (result.IsSuccessKGTKakaoTalk.TalkProfile((result) => 
{
    if (result.IsSucces) 
    {
        // 카카오톡 프로필 조회 성공
        KGTKakaoTalkProfile talkProfile = result.Content;
    }
    else if (result.code == KGTResultCode.NotKakaoTalkUser)
    {
        // 계정로그인 관리 페이지유저가 띄우기'카카오톡' 성공 (외부 브라우저로 웹 페이지가 노출 됩니다.)
    }
    else if (result.code == KGTResultCode.NotSupported)
    {유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
    }
    else 
   // 계정 관리 페이지를 지원하지 않는 경우 {
        // (Guest카카오톡 로그인프로필 상태인조회 경우)실패
    }
    else
    {
        // 계정 관리 페이지 띄우기 실패
    }
});

시스템 정보

언어 코드 가져오기

});

카카오톡 게임 친구 목록 조회하기

발췌문 삽입
시스템 정보 카카오 연동 기능 SDK 예제시스템 정보
카카오 연동 기능 SDK 예제
namesystemkakao_languagetalk_codefriends
nopaneltrue

코드 블럭
languagec#
using KakaoGame.API;

KGTKakaoTalk.Friends((result) => 
{
 string  languageCode =if KGTSystem.LanguageCode;

국가 코드 가져오기

...

코드 블럭
languagec#
using KakaoGame.API;

string countryCode = KGTSystem.CountryCode;

IP 기반 국가 코드 가져오기

...

코드 블럭
languagec#
using KakaoGame.API;

string geoCountryCode = KGTSystem.GeoCountryCode;

기기 아이디 가져오기

...

코드 블럭
languagec#
using KakaoGame.API;

string deviceId = KGTSystem.DeviceId;

기기 모델 가져오기

...

코드 블럭
languagec#
using KakaoGame.API;

string deviceModel = KGTSystem.DeviceModel;

OS 이름 가져오기

...

코드 블럭
languagec#
using KakaoGame.API;

string osName = KGTSystem.OsName;

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

...

코드 블럭
languagec#
using KakaoGame.API;

bool isNetworkConnected = KGTSystem.IsNetworkConnected;

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

...

(result.IsSucces) 
    {
        var players = result.Content;
        // 카카오톡 게임 친구 목록 조회 성공.
        foreach(var player in players) {
            var kakaoProfile = (KGTKakaoProfile)player.IdpProfile; // 게임 메세지 전송시 사용
        }
    }
    else if (result.code == KGTResultCode.NotKakaoTalkUser)
    {
        // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
    }
    else 
    {
        // 카카오톡 게임 메시지 수신 여부 설정 실패
    }
});

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

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

코드 블럭
languagec#
using KakaoGame.API;

string// networkTypeFriends = KGTSystem.NetworkType;

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

...

코드 블럭
languagec#
using KakaoGame.API;

string gameLanguageCode = KGTSystem.GameLanguageCode;

게임 언어 코드 설정하기

...

코드 블럭
languagec#
using KakaoGame.API;

var languageCode = KGTLanguageCode.Device;
KGTSystem.SetGameLanguageCode(languageCode);

카카오 연동 기능

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

...

코드 블럭
languagec#
using KakaoGame.API;

KGTKakaoTalk.ShowSetting((API를 통해
KGTKakaoFriendProfile kakaoProfile; // 카카오 프로필(KGTKakaoFriendProfile 객체)

// [TODO] 템플릿 Id 설정
string templateId;
  
// [TODO] 메시지 템플릿에 설정한 인자 설정
Dictionary<string, object> argumentDic = new Dictionary<string, object>();

KGTKakaoTalk.SendGameMessage(kakaoProfile, tempalteId, argumentDic, (result) => 
{
    if (result.IsSucces) 
    {
        // 카카오톡 게임채팅 메시지 수신 여부 설정보내기 성공.
    }
    else if (result.code == KGTResultCode.NotKakaoTalkUserMessageSettingDisabled) 
    {
        // 로그인받은이가 메시지 유저가수신 '카카오톡'거부를 유저가설정한 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.경우
    }
    else if (result.code == KGTResultCode.ExceedDailyUsage) 
   } {
       else // 한명이 특정 앱에 대해 {보낼  있는 하루 쿼터(받는 사람 관계없이) 초과시 발생
// 카카오톡 게임 메시지 수신}
여부 설정 실패  else if  }
});

카카오톡 프로필 조회하기

...

코드 블럭
languagec#
using KakaoGame.API;

KGTKakaoTalk.TalkProfile((result) => 
{
    if (result.IsSucces) 
    {
  (result.code == KGTResultCode.ExceedMonthlyUsage) 
    {
        // 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생
    }
// 카카오톡 프로필 조회 성공else if (result.code       KGTKakaoTalkProfile talkProfile = result.Content;
    }
    else if (result.code == KGTResultCode== KGTResultCode.NotKakaoTalkUser)
    {
        // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
    }
    else 
    {
        // 카카오톡 프로필채팅 메시지 조회보내기 실패.
    }
});

카카오톡

...

친구

...

초대 메시지 전송하기

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

코드 블럭
languagec#
using KakaoGame.API;

KGTKakaoTalk.Friends((result) => 
{
    if (result.IsSucces) 
    {
// [TODO] 팝업창으로 띄울지 여부 설정
bool isSingle;

// [TODO] 팝업창으로 띄울지 여부 설정
bool isPopup;
  
// [TODO] 템플릿 Id var설정
players = result.Content;
    string templateId;
  
// 카카오톡[TODO] 게임메시지 친구템플릿에 목록설정한 조회인자 성공.설정
Dictionary<string, object> argumentDic = new Dictionary<string, object>();

foreach(var player in players)KGTKakaoTalk.SendInviteMessage(isSingle, isPopup, tempalteId, argumentDic, (result) =>
{
    if (result.IsSucces) 
    {
   var  kakaoProfile = (KGTKakaoProfile)player.IdpProfile; // 게임 메세지 전송시 사용 요청 성공
    }
    else
    {
        }// 요청 실패
  }     else if (result.code == KGTResultCode.NotKakaoTalkUserMessageSettingDisabled)
    {    {
    // 로그인  유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만// 가입한받은이가 유저의메시지 계정과수신 같이 카카오톡 유저가 아닌거부를 설정한 경우.
    }    }
else      {  else if (result.code == KGTResultCode.ExceedDailyUsage)
   //   카카오톡 게임 메시지{
수신 여부 설정 실패     } });

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

...

코드 블럭
languagec#
using KakaoGame.API;  // Friends한명이 API를특정 통해앱에 KGTKakaoFriendProfile대해 kakaoProfile;보낼 // 카카오있는 프로필(KGTKakaoFriendProfile 객체)

// [TODO] 템플릿 Id 설정
string templateId;
  
// [TODO] 메시지 템플릿에 설정한 인자 설정
Dictionary<string, object> argumentDic = new Dictionary<string, object>();

KGTKakaoTalk.SendGameMessage(kakaoProfile, tempalteId, argumentDic, (result) =>하루 쿼터(받는 사람 관계없이) 초과시 발생.
        }
        else if (result.code == KGTResultCode.ExceedMonthlyUsage)
        {
    if (result.IsSucces)      { // 한명이 특정 앱에 대해 특정인에게 보낼  // 카카오톡 채팅 메시지 보내기 성공.수 있는 한달 쿼터 초과시 발생.
        }
        else if (result.code == KGTResultCode.MessageSettingDisabledNotKakaoTalkUser)
        {
            // 받은이가로그인 메시지 수신유저가 거부를'카카오톡' 설정한유저가 경우아닙니다.
    }    }
else if (result.code == KGTResultCode.ExceedDailyUsage)    else
 {       {
 // 한명이 특정 앱에 대해 보낼  있는 하루 쿼터(받는 사람 관계없이)// 초과시 발생밖의 에러
   }     else}
  if (result.code == KGTResultCode.ExceedMonthlyUsage) 
    {
        // 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생 }
});

카카오톡 채널 추가하기

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

코드 블럭
languagec#
using KakaoGame.API;

// [TODO] 채널 Id 설정
int channelId;

KGTKakaoTalk.AddChannel(channelId, (result) => 
{
    if (result.IsSucces) 
    {
        // 친구 추가하기 성공
    }
    else if (result.code == KGTResultCode.NotKakaoTalkUser)
    {
        // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
    }
    else
     {
        // 카카오톡 채팅 메시지 보내기친구 추가하기 실패.
    }
});

...

내 초대 메시지로 가입한 친구 목록 조회하기

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

코드 블럭
languagec#
using KakaoGame.API;

// [TODO] 팝업창으로이벤트 띄울지Id 여부 설정
boolint isSingleeventId;

// [TODO] 팝업창으로 띄울지 여부 설정
bool isPopup;KGTKakaoInvitation.Joiners(eventId, (result) =>
{
    if (result.IsSucces) 
  // [TODO] 템플릿{
Id 설정 string templateId;    // [TODO]List<KGTPlayer> 메시지players 템플릿에 설정한 인자 설정
Dictionary<string, object> argumentDic = new Dictionary<string, object>();

KGTKakaoTalk.SendInviteMessage(isSingle, isPopup, tempalteId, argumentDic, (result) =>
{= result.Content;
        // 내가 초대한 플레이어 목록 가져오기
       if (result.IsSucces) 
    {foreach (var player in players)
        {
 // 요청 성공     }  // 수신자의 플레이어 else아이디
    {      var playerId  // 요청 실패= player.PlayerId;
          if (result.code =var idpProfile = KGTResultCode.MessageSettingDisabled)player.IdpProfile;
          var kakaoProfile = {player.IdpProfile as KGTKakaoFriendProfile;
          // 받은이가수신자의 메시지닉네임
수신 거부를 설정한 경우.       var nickname }= kakaoProfile.Nickname;
       else if (result.code == KGTResultCode.ExceedDailyUsage) // 수신자의 프로필 썸네일 이미지
          var thumbnailImageUrl = kakaoProfile.ThumbnailImageUrl;
          // {수신지의 탈퇴 이력 조회. UI상에서 탈퇴 여부 정보를 표시할 경우 해당 flag를 사용.
// 한명이 특정 앱에 대해 보낼  있는 하루 쿼터(받는 사람var 관계없이)isUnregistered 초과시= 발생kakaoProfile.IsUnregistered;
        }
    }
    else if (result.code == KGTResultCode.ExceedMonthlyUsageNotKakaoTalkUser)
    {
   {     // 로그인  유저가 '카카오톡' 유저가 아닙니다. 카카오 //스토리만 한명이가입한 특정유저의 앱에계정과 대해같이 특정인에게카카오톡 보낼유저가 수 있는 한달 쿼터 초과시 발생.
  아닌 경우.
     }
        else if (result.code == KGTResultCode.NotKakaoTalkUser)
 
      {
            // 로그인호출 실패
유저가 '카카오톡' 유저가 아닙니다.
        }
        else
        {
            // 그 밖의 에러
        }
    }
});

...

 }
});

내가 초대 메시지를 보낸 친구 숫자 조회하기

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

코드 블럭
languagec#
using KakaoGame.API;

// [TODO] 채널이벤트 Id 설정
int channelIdeventId;

KGTKakaoTalkKGTKakaoInvitation.AddChannelReceiversCount(channelIdeventId, (result) => 
{
    if (result.IsSucces) 
    {
        // 친구 추가하기호출 성공
    }    var elsecontent if= (result.codeContent;
== KGTResultCode.NotKakaoTalkUser)     {  var totalReceiversCount = content.TotalReceiversCount;
   // 로그인  유저가 '카카오톡' 유저가var 아닙니다.joinersCount 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
    }
= content.JoinersCount;
        // totalReceiversCount - 전체 친구 수
   else     {// joinersCount - 게임에 가입한 친구 
  // 친구 추가하기}
실패    else }
});

구글 게임

업적 달성 화면 보여주기

...

코드 블럭
languagec#
using KakaoGame.API;

KGTGoogleGamesAchievements.ShowAchievementView();

업적 달성

...

코드 블럭
languagec#
using KakaoGame.API;

// [TODO] 업적 아이디 설정
var id = "";

KGTGoogleGamesAchievements.Unlock(id);

업적 노출하기

...

코드 블럭
languagec#
using KakaoGame.API;

// [TODO] 업적 아이디 설정
var id = "";

KGTGoogleGamesAchievements.Reveal(id);

업적 단계 증가

...

코드 블럭
languagec#
using KakaoGame.API;

// [TODO] 업적 아이디 설정
var id = "";
var numSteps = 0;

KGTGoogleGamesAchievements.SetSteps(id, numSteps);

업적 단계 설정

...

코드 블럭
languagec#
using KakaoGame.API;

// [TODO] 업적 아이디 설정
var id = "";
var numSteps = 0;

KGTGoogleGamesAchievements.Increment(id, numStepsif (result.code == KGTResultCode.NotKakaoTalkUser)
    {
        // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
    }
    else
    {
        // 친구 추가하기 실패
    }
});