1.1 Unity SDK 설치

1.1. Unity SDK 설치

 


1.1.1. 설치 환경 및 실행 환경

  • 최소 버전

    • Unity 2019.4.15f1 이상 지원

  • 권장 버전

    • Unity 2020.3.43f1 이상

권장 버전을 사용하지 않을 경우, 아래와 같은 문제가 있습니다.

1.1.2. SDK 파일 구성

전달받은 KakaoGameSDK_Unity_[버전].zip 파일은 다음과 같은 파일들로 구성되어 있습니다.

파일

설명

파일

설명

KakaoGameSDK.unitypackage

  • 배포되는 Unity 패키지 파일입니다.

SampleApp.zip

  • 샘플 프로젝트입니다.

  • 배포된 Unity패키지 파일(KakaoGameSdk.unitypackage)을 import하면, 샘플앱 실행이 가능합니다.

ApiReference.zip

  • 카카오게임 Unity SDK의 API 레퍼런스 문서입니다.

 

1.1.3. SDK 설치

1.1.3.1. Unity 패키지 파일 import하기

먼저 Unity3d툴에서 게임 프로젝트를 오픈합니다.
KakaoGameSdk.unitypackage를 실행하면, Unity3d툴에서 import할 수 있는 메뉴가 뜹니다. 모든 항목이 체크된 상태로 import를 진행합니다.

Android용 카카오게임 SDK와 iOS용 카카오게임 SDK는 모두 Unity 패키지 내에 포함되어 있습니다. 별도로 해당 SDK를 설치할 필요는 없습니다.

 

1.1.3.2. Migration의 경우

KakaoGameSdk.unitypackage를 실행하면, Unity3d툴에서 import할 수 있는 메뉴가 뜹니다.
기존 SDK에서 필요한 항목이 체크된 상태로 import를 진행합니다.

이전 버전 SDK 파일들에 의해 컴파일 에러가 발생할 수 있습니다.

Script Updater에서 에러 발생한 케이스

Assets > Reimport All 또는 에디터를 재부팅하면 KGAssetImporter에 의해 자동으로 이전 SDK 파일들을 제거합니다.

이후 SDK 변경 사항들을 수정해주면 됩니다.

1.1.3.3. 카카오게임 SDK 설정 인스펙터 열기

  1. Unity 패키지 파일 import가 되면, Unity3d툴 메뉴에 Kakao라는 메뉴가 새로 생긴걸 확인할 수 있습니다.

     

  2. ConfigureSDK를 클릭하면, 아래와 같이 카카오게임 SDK 설정이 가능한 인스펙터가 열립니다.

1.1.3.4. 카카오게임 속성 설정

  • 먼저 카카오게임 속성 설정을 해야 합니다. 먼저 설정 항목에 대한 설명을 확인하시길 바랍니다.

카카오게임 SDK 속성

카카오게임 SDK 속성

타입

필수

설명

예시

App Id

String

O

아래 둘 중 한곳에서 확인할 수 있습니다.
카카오 개발자 페이지 > 내 어플리케이션 > 앱 선택 > 앱 설정 > 요약 정보
카카오게임 3.0 어드민 -> 게임빌드 -> 클라이언트 버전 관리

103815

App Secret

String

O

카카오 개발자 페이지 > 내 어플리케이션 > 앱 선택 > 앱 설정 > 요약 정보에서 확인할 수 있는 네이티브 앱 키와 동일합니다.

951b75bf17fe0885ab5106ba2a9f9bc9

Debug Level

String

X

SDK 로그 출력 레벨을 설정합니다. "Verbose", "Debug", "Error", "None" 중 하나를 선택할 수 있습니다.

None

  • 아래 그림과 같이 카카오게임 속성을 설정하도록 합니다.

  • 설정 이후 잘 설정되었는지 확인하기 위해 Check configuration setting 버튼을 클릭합니다.
     

  • 잘 설정되어있지 않을 경우, 아래와 같이 원인 문구가 나옵니다.
    아래의 경우는 유효하지 않은 앱아이디를 사용하고 있어서 발생합니다.
    기술PM님이 전달받은 앱아이디가 잘 등록되었는지 확인합니다. 잘 등록되어 있을 경우, 기술PM님께 문의부탁드립니다.

     

1.1.3.5. 카카오 멀티앱 로그인 기능 사용시 필요한 설정

SDK 3.11.0 버전부터 iOS의 경우 카카오 멀티앱 로그인을 지원하게 됩니다.(Android는 기존처럼 키해시로 지원가능)

그에 따라 멀티 앱 로그인을 사용하고 싶은 게임에서 각각 게임 프로젝트 유니티 인스펙터 상에서 Kakao MultiApp Login 체크 박스를 클릭 후에 빌드합니다.

1.1.3.6. 구글 정보 설정

게임에서 구글(구글게임 포함) 인증을 사용할 경우, 설정 하도록 합니다.

  1. 구글 인증을 사용할 경우, Google 체크 박스를 클릭합니다. 

  2. iOS앱에서 구글 인증을 할 경우, iOS 클라이언트 ID를 설정합니다.

  3. 안드로이드앱에서 구글 인증하거나, 구글 게임 인증을 사용할 경우, Webapp Client ID를 설정합니다.

  4. 구글 인증시, 기본 퍼미션외 추가로 더 사용자의 동의를 받을 퍼미션이 있다면, Add버튼을 눌러서 추가하도록 합니다. 없을 경우, 해당 과정은 생략합니다.

1.1.3.7. 페이스북 정보 설정

게임에서 페이스북 인증을 사용할 경우, 설정 하도록 합니다.

  1. 페이스북 인증을 사용할 경우, Facebook 체크 박스를 클릭합니다.

  2. 페이스북 App Key를 등록합니다.

  3. 페이스북 App Title을 등록합니다. 페이스북 로그인창이 뜰때, 노출되는 타이틀입니다.

  4. 페이스북 Client Token을 등록합니다.

  5. 페이스북 인증시, 기본 퍼미션외 추가로 더 사용자의 동의를 받을 퍼미션이 있다면, Add버튼을 눌러서 추가하도록 합니다. 없을 경우, 해당 과정은 생략합니다.

  6. FB SDK Settings를 클릭할 경우 Facebook SDK에서 생성한 FacebookSettings.assets을 확인할 수 있습니다. 빌드시 제대로 생성되었는지 확인이 필요합니다.

1.1.3.8. Signin with Apple 정보 설정

게임에서 Signin with Apple을 사용할 경우, 설정 하도록 합니다.

  1. Signin with Apple을 사용할 경우, SigninWithApple 체크 박스를 클릭합니다.

  2. 애플 어드민에서 발급받은 ClientId 항목을 입력합니다.

유니티 버전별로 signin with apple 관련 설정이 추가로 필요합니다.

// KGPostBuild.cs if (KGSharedData.instance.useSigninWithApple)     KGIosSupport.AddSigninWithAppleCapability(buildPath);

만약, 사용중인 유니티 버전에서 위의 코드에서 빌드 에러가 발생한다면, 해당 유니티 버전이 signin with apple capabilities를 추가하는 기능을 지원하지 않는 버전입니다.

그런 경우라면 우선 ios 타겟으로 빌드 후에 빌드된 Xcode project 상에서 수동으로 signin with apple capabilities를 추가해줘야 합니다.(참고 : https://kakaogames.atlassian.net/wiki/spaces/KS3GFC/pages/413631668/1.3+iOS+SDK#1.3.3.6.-%EC%B9%B4%EC%B9%B4%EC%98%A4%EA%B2%8C%EC%9E%84-SDK-%EC%86%8D%EC%84%B1-%EC%84%A4%EC%A0%95 참고)

1.1.3.9. Newtonsoft.Json 패키지 설치(SDK 3.15.0 이상)

SDK 3.15.0 이상부터 내부 로직에 newtonsoft-json을 사용하게 되면서 해당 패키지를 필수로 설치해야 합니다.

프로젝트 루트 디렉토리에서 Packages/manifest.json을 열고 "com.unity.nuget.newtonsoft-json": "3.0.2" 을 추가합니다.

{ "dependencies": { //... "com.unity.nuget.newtonsoft-json": "3.0.2" } }

1.1.4. Android 설정

1.1.4.1. Permission 설정

  1. unitypackage를 import 후에 Assets/Plugins/Android/AndroidManifest.xml 파일에 게임에서 사용할 permission을 추가

    1. <uses-permission android:name="android.permission.XXXXXX" /> 형태로 추가

1.1.4.2. google-services.json 세팅

  1. 게임 설정에 맞는 google-services.json 파일을 다운로드 합니다. (https://kakaogames.atlassian.net/wiki/spaces/KS3GFC/pages/413893728 항목에서 Firebase 콘솔에서 파일 다운로드 받는 방법 참고)

  2. 해당 파일을 다운로드 받은 후에 Assets/Plugins/Android 폴더 아래에 위치시킵니다.

  3. 윈도우 환경에서 google-services 관련 오류가 있을 경우(SDK 3.15.0 이하)

에서 generate_xml_from_google_services_json.exe을 다운받거나 Assets/Firebase/Editor/generate_xml_from_google_services_json.exe 를 이용하여
google-services.xml 또는 google-services-desktop.json을 생성해줄 수 있습니다.

"generate_xml_from_google_services_json.exe" -i "{원본 google-services.json 경로}" -o "{프로젝트 경로}/Assets/Plugins/Android/KakaoGameSDK.androidlib/res/values/google-services.xml" -p "{패키지 이름}"

또는 파이썬 CLI를 설치후에 환경변수에 설정해서 파이썬을 실행할 수 있도록 설정하는 방법도 있습니다. (Download Link :  )

1.1.4.3. 커스텀 빌드 파일 세팅

Player → Publishing Settings → Build로 이동하여 커스텀 파일을 세팅합니다.

아래 커스텀 빌드 파일은 SDK에서 필수로 사용하는 항목입니다.

  • AndroidManifest.xml

SDK 내부 로직에 의해 자동으로 생성됩니다.

  • mainTemplate.gradle

반드시 체크가 필요하며 필요한 디펜던시스는 EDM에 의해 자동 세팅됩니다.

  • launcherTemplate.gradle

유니티와 EDM에 의해 자동 생성된 파일을 사용하시면 됩니다. SDK unitypackage에서 제공하는 파일을 그대로 사용해주셔도 상관없습니다.

  • baseProjectTemplate.gradle

해당 구문을 추가해야합니다.

SDK unitypackage에서 제공하는 파일을 그대로 사용해주셔도 상관없습니다.

Unity 2022.2 이상을 사용할 경우

자동 생성된 파일에

해당 구문을 추가해야합니다.

  • gradleTemplate.properties

유니티와 EDM에 의해 자동 생성된 파일을 사용하시면 됩니다. SDK unitypackage에서 제공하는 파일을 그대로 사용해주셔도 상관없습니다.

  • proguard-user.txt

SDK unitypackage에서 제공하는 파일을 사용해주시면 됩니다. 추가적으로 세팅하시는 것도 가능합니다.
SDK 3.15.0부터는 더이상 사용하지않아 제거해주셔도 상관없습니다.

1.1.4.4. gradle 버전 세팅

SDK 3.13.3 버전부터 빌드시 사용하는 gradle이 6.1.1를 사용하게 되면서 특정 유니티 버전 이하에서는 업그레이드가 필요합니다.

1.1.4.5. Http 사용 설정

targetSdkVersion을 28 버전 이상으로 설정하고 http 통신을 사용하는 게임은 아래와 같은 설정이 필요합니다.

카카오 게임 SDK 내부에서는 http를 사용하지 않습니다. 개발사에서 cdn등 이슈로 http 콜이 필요한 경우에만 설정합니다.

  1. Kakao SDK v3.8.3 이상 버전 사용 필수

    1. Unity Inspector 내에 Etc Setting(Use as needed) -> Domains to use HTTP(Android) 항목에 Add 버튼을 통해 게임에서 사용할 http domain을 추가

  2. 3.10.0 이후 버전에서 다음카페뷰를 로드하는 API가 추가되었는데, 이 API를 사용하기 위해서 모든 HTTP Domain의 호출이 필요한데 아래와 같은 설정이 필요합니다.

    1. Etc Setting -> HTTP Domain -> Use All HTTP Domain Check 설정

1.1.4.6. EDM 설정

  1. EDM가 필요한 라이브러리를 다운로드 해주는 Resolver라는 기능을 제공해주는데, 이와 관련한 설정이 제대로 세팅되었는지 체크가 필요합니다.

    1. 먼저, Android Resolver Setting을 클릭합니다. (Menu -> Assets → External Dependency Manager → Android Resolver → Settings)

    2. 다음과 같이 세팅합니다.(필요에 따라 다르게 세팅하셔도 상관없습니다.)

1.1.4.7. Main Activity 변경하는 방법

SDK에서 자동으로 mainActivity를 KGUnityPlayerActivity로 변경해주고 있습니다.

메인 액티비티를 변경하기 위해서는 KGSharedData.json를 열어서 customManifest를 true로 세팅해주시면 됩니다.

1.1.5. iOS 설정

  1. Unity3d툴에서 File -> Build Settings... 메뉴를 선택합니다. 

  2. 아래와 같이 "Build Settings"창에서 Platfrom을 iOS로 설정하고, "Player Settings..."버튼을 클릭합니다.

  3. 카카오게임 SDK의 iOS 최소 지원 버전은 11.0입니다.

  4. Build 버튼을 클릭하여 빌드합니다. 빌드가 성공하면, Xcode 프로젝트가 생성됩니다.

1.1.5.1. EDM 설정

  1. Android 처럼 EDM가 필요한 라이브러리를 다운로드 해주는 Resolver라는 기능을 제공해주는데, 이와 관련한 설정이 제대로 세팅되었는지 체크가 필요합니다.

    1. 먼저, iOS Resolver Setting을 클릭합니다. (Menu -> Assets -> External Dependency Manager -> iOS Resolver -> Settings)

    2. 다음과 같이 세팅합니다.(필요에 따라 다르게 세팅하셔도 상관없습니다.)

1.1.6. 게임 내 지원 언어 리소스

라이브러리에서 게임 내 지원 언어 외 추가적인 언어 팩이 있거나 해당 언어를 제거하고 싶다면 아래 위치의 폴더에서 세팅해주시면 됩니다.

  1. iOS

    1. iOS 프로젝트를 빌드하여 Xcode 프로젝트를 생성한후
      Pods > KakaoGamePublishingSDK > KakaoGameFramework > KakaoGameResources.bundle 파일을 찾아서 '패키지 내용보기' 를 클릭한다.

    2. 제거 하고 싶은 언어의 폴더를 삭제한다.

  2. Android

    1. Android의 경우 aar에 포함되어 있어 수정이 불가능합니다.

1.1.7. 유니티 에디터 로그인

1.1.7.1. 카카오 개발자 사이트 세팅

웹 플랫폼 활성화

우선 카카오 개발자 사이트 내에서 카카오 게임 앱 정보에서 웹 플랫폼을 활성화 시킵니다. (처음에 앱등록을 한 상태에서 기본적으로 활성화 되지 않으므로 웹 플랫폼을 활성화 시켜야 함)

플랫폼 - Web- 사이트 도메인 추가

3.14.6 이상

카카오 에디터 로그인에 필요한 url이 https://dist-test-sdk.s3.amazonaws.com에서 https://kakao-sdk-release.s3.amazonaws.com로 변경되었습니다.

3.14.6 미만

카카오 디벨로퍼 사이트에서 https://kakao-sdk-release.s3.amazonaws.com를 등록하셔야합니다.

1.1.7.2. Unity SDK Configuration 세팅

Editor 로그인을 체크후 카카오 개발자 사이트에 있는 JavaScript 키를 등록 해줍니다.

1.1.7.3. 에디터 상에서의 카카오 로그인 사용

위와 같이 환경 설정 후에 유니티 에디터 상에서 카카오 로그인을 할 수 있습니다. 사용 방법은 아래 가이드를 참고하시면 됩니다.

  1. 로그인시에 Start 호출 → Login 호출 후에 지원하는 IDP 로그인 창 노출 확인 후 카카오 로그인 선택

  2. 카카오 인증 정보를 입력 받을 수 있는 UI가 노출됨과 동시에 PC / Mac에 설정된 default web browser로 카카오 로그인 페이지 노출

     

  3. 로그인 페이지에서 카카오 계정으로 로그인 버튼을 누르면 최초에 카카오 계정으로 로그인 팝업이 떠서 로그인이 가능하고 웹 페이지 캐싱에 의해 로그인 한 적이 있으면 바로 로그인 한 응답이 웹 페이지에 노출

  4. 웹페이지에 응답으로 노출된 정보를 모두 복사해서 유니티 에디터 상으로 다시 돌아와서 입력창에 입력 후에 OK 버튼

  5. 위와 같은 과정을 다 거치면 카카오 인증이 완료되고, 인증된 정보 에디터 환경(C# SDK)에서 해당 정보를 가지고 지니 플랫폼에 로그인해서 정상적으로 playerId와 zat발급 및 로그인 프로세스 완료.

1.1.8. Unity SDK 사용시 주의사항

1.1.8.1. PlayerPref class 사용시 참고

  1. iOS / Android Native SDK에서 내부로직 상 저장이 필요한 값들을 해당 앱 데이터에 저장하는 로직 존재.

  2. 개발사에서 게임 데이터 정리를 위해 PlayerPref deleteAll 호출하는 경우 있음 -> 이 경우 SDK에서 필요로 인해 저장한 데이터 삭제되게 되어 SDK 오동작이 발생.

  3. 개발사에서 사용하는 key / value를 정리해서 개발사에서 deleteAll이 아닌 deleteKey API를 사용해서 게임에서 저장한 게임 데이터만 삭제하도록 구현해야 함.