Unity SDK 설치
- 1 1. 설치 환경 및 실행 환경
- 2 2. SDK 파일 구성
- 3 3. SDK 설치
- 4 4. 카카오 게임 SDK 설정
- 4.1 4.1. 카카오게임 SDK 설정 인스펙터 열기
- 4.2 4.2. 공통 설정
- 4.2.1 4.2.1. 기본 설정
- 4.3 4.3. Android 설정
- 4.3.1 4.3.1. 커스텀 빌드 파일 세팅
- 4.3.2 4.3.2. Permission 설정
- 4.3.3 4.3.3. google-services.json 세팅
- 4.4 4.4. iOS 설정
- 4.4.1 4.4.1. 최소 지원 버전 세팅
- 4.4.2 4.4.2. 멀티앱 로그인 설정
- 4.4.3 4.4.3. Native SDK 의존성 설정
- 4.4.4 4.4.4. iOS App Localization 설정
- 4.5 4.5. IDP 설정
- 4.5.1 4.5.1. 카카오 정보 설정
- 4.5.2 4.5.2. Signin with Apple 정보 설정
- 4.6 4.6. Unity SDK 사용시 주의사항
1. 설치 환경 및 실행 환경
최소 버전
Unity 2021.3.37f1 이상
권장 버전
Unity 2022.3.21f1 이상
권장 버전을 사용하지 않을 경우, 아래와 같은 문제가 있습니다.
"USING MEMORYADRESSES FROM MORE THAN 16GB OF MEMORY" 메시지와 함께 앱 실행시 크래쉬가 발생할 수 있습니다. (관련 이슈)
2018.x 버전에서 Android 12 이상 빌드시 검은 화면만 뜨는 버그가 있습니다.
gradle이 6.7.1를 사용하게 되면서 특정 유니티 버전 이하에서는 업그레이드가 필요합니다.
2. SDK 파일 구성
전달받은 KakaoGamesSDK_Unity_[버전].zip 파일은 다음과 같은 파일들로 구성되어 있습니다.
파일 | 설명 |
---|---|
KakaoGamesSDK.unitypackage |
|
com.kakaogames.sdk-[버전].tgz |
|
SampleApp.zip |
|
ApiReference.zip |
|
3. SDK 설치
3.1. Package Manager로 설치하기(Scoped Registry)
Project Settings - Package Manager - Scoped Registries에 아래와 같이 스코프를 설정해줍니다.
Package Manager를 열고 My Registry로 변경후 SDK를 설치합니다.
시작화면을 띄웁니다.
필수 플러그인을 설치합니다.
4. 카카오 게임 SDK 설정
4.1. 카카오게임 SDK 설정 인스펙터 열기
SDK 설치를 완료하면, Unity 메뉴에 KakaoGames/Configure SDK 라는 메뉴가 생긴걸 확인할 수 있습니다.
클릭시 KGTConfiguration.asset으로 이동됩니다. 혹은 바로 Assets/KakaoGames/KGTConfiguration.asset 파일의 Inspector를 확인할 수 있습니다.
KGTConfiguration.asset의 Inspector를 통해 카카오 게임에서 사용할 속성을 설정할 수 있습니다.
4.2. 공통 설정
4.2.1. 기본 설정
먼저 카카오게임 기본 설정을 작성해야 합니다. 먼저 설정 항목에 대한 설명을 확인하시길 바랍니다.
카카오게임 SDK 기본 설정 | ||||
---|---|---|---|---|
키 | 타입 | 필수 | 설명 | 예시 |
App Id | String | O | 아래 둘 중 한곳에서 확인할 수 있습니다. | 909428 |
App Secret | String | O | 카카오 개발자 페이지 > 내 어플리케이션 > 앱 선택 > 앱 설정 > 요약 정보에서 확인할 수 있는 네이티브 앱 키와 동일합니다. | c3c38bbfa3828b342d946e9770c974d0 |
Log Level | Enum | O | SDK 로그 출력 레벨을 설정합니다. "Verbose", "Debug", "Error", "None" 중 하나를 선택할 수 있습니다. | None |
아래 그림과 같이 카카오게임 기본 설정을 작성합니다.
설정 이후 Test Configuration 버튼을 클릭합니다.
올바르게 설정되어 있을 경우
잘못 설정되어 있을 경우
4.3. Android 설정
4.3.1. 커스텀 빌드 파일 세팅
Player → Publishing Settings → Build로 이동하여 커스텀 파일을 세팅합니다.
아래 커스텀 빌드 파일은 SDK에서 필수로 사용하는 항목입니다.
| 2021.3 | 2022.3 |
---|---|---|
필수로 사용하는 항목 |
|
|
AndroidManifest.xml | SDK 내부 로직에 의해 자동으로 생성됩니다. | SDK 내부 로직에 의해 자동으로 생성됩니다. |
mainTemplate.gradle | 반드시 체크가 필요하며 필요한 디펜던시스는 EDM에 의해 자동 세팅됩니다. External Dependency Manager를 통해 Android Dependencies가 세팅됩니다. | 반드시 체크가 필요하며 필요한 디펜던시스는 EDM에 의해 자동 세팅됩니다. External Dependency Manager를 통해 Android Dependencies가 세팅됩니다. |
launcherTemplate.gradle | 자동 생성된 파일을 사용하시면 됩니다. | 자동 생성된 파일을 사용하시면 됩니다. |
baseProjectTemplate.gradle | 자동생성된 파일에 classpath 'com.google.gms:google-services:4.3.3' 해당 구문을 추가해야합니다. | 자동 생성된 파일에 // Make sure that you have the Google services Gradle plugin dependency
id 'com.google.gms.google-services' version "4.3.15" apply false 해당 구문을 추가해야합니다. |
gradleTemplate.properties | 유니티와 EDM에 의해 자동 생성된 파일을 사용하시면 됩니다. | 유니티와 EDM에 의해 자동 생성된 파일을 사용하시면 됩니다. |
settingTemplate.gradle | 2021.3 버전에는 해당 파일이 없습니다. | 자동 생성된 파일을 사용하시면 됩니다. |
4.3.2. Permission 설정
Assets/Plugins/Android/AndroidManifest.xml 파일에 게임에서 사용할 permission을 추가할 수 있습니다.
<uses-permission android:name="android.permission.XXXXXX" />
4.3.3. google-services.json 세팅
게임 설정에 맞는 google-services.json 파일을 다운로드 합니다.
해당 파일을 다운로드 받은 후에 Assets/Plugins/Android 폴더 아래에 위치시킵니다.
firebase sdk에서 자동으로 google-services.xml 또는 google-services-desktop.json를 생성해줍니다.
firebase sdk를 설치하지 않는 경우, https://github.com/firebase/firebase-cpp-sdk에서 generate_xml_from_google_services_json.exe와 generate_xml_from_google_services_json.py을 다운로드 후 프로젝트에 추가해줍니다. 또는 수동으로 google-services.xml 또는 google-services-desktop.json을 직접 생성해줄 수 있습니다.
4.4. iOS 설정
4.4.1. 최소 지원 버전 세팅
Unity3d툴에서 File -> Build Settings... 메뉴를 선택합니다.
아래와 같이 "Build Settings"창에서 Platfrom을 iOS로 설정하고, "Player Settings..."버튼을 클릭합니다.
카카오게임 SDK의 iOS 최소 지원 버전은 13.0입니다.
Build 버튼을 클릭하여 빌드합니다. 빌드가 성공하면, Xcode 프로젝트가 생성됩니다.
4.4.2. 멀티앱 로그인 설정
멀티 앱 로그인을 사용하고 싶은 게임에서는 인스펙터 상에서 Kakao MultiApp Login 체크 박스를 클릭 후에 빌드합니다.
중요 : 기존처럼 하나의 앱에서 사용할 게임들은 저 체크박스를 해제 상태로 두시면 됩니다.(저걸 켜면 redirect uri 설정이 잘못될 수 있어서 사용하지 않는 앱에서는 반드시 해제 상태로 두어야 합니다.)
4.4.3. Native SDK 의존성 설정
Kakaogames/Edtior/KakaoGamesDependencies.xml에서 게임에서 사용하지 않는 의존성을 제거하거나 필요한 의존성만 추가할 수 있습니다.iosPods
속성에서 iosPod
항목을 필요에 따라 제거 및 추가합니다.
코어 모듈은 항상 설정되어 있어야합니다.
예를 들어 Kakao모듈만 사용할 경우
다음과 같이 설정할 수 있습니다.
4.4.4. iOS App Localization 설정
Localization 세팅을 위한 작업입니다.
예시로 User Tracking Usage Description의 다국어 세팅을 진행합니다.
Localization을 설치합니다.
Project Settings - Localization에서 Create를 클릭합니다.
Locale Generate를 하고 원하는 국가를 선택합니다.
MetaData에서 iOS-App Info를 클릭합니다.
Default 국가를 세팅합니다. 예제에서는 en을 사용합니다.
Window > Asset Management > Localization Scene Controls에서 Localization Table 창을 띄워주고 'App Data'라는 Table을 생성합니다.
Edit Table Collection에서 다국어 세팅을 해줍니다.
마지막으로 User Tracking Usage Description에 Table을 넣어줍니다.
정상적으로 세팅이 되었을 경우 다국어가 적용됩니다.
4.5. IDP 설정
4.5.1. 카카오 정보 설정
게임에서 카카오 인증을 사용할 경우, 설정 하도록 합니다.
카카오 인증을 사용할 경우, Kakao 체크 박스를 클릭합니다.
Windows SDK를 사용하는 경우 App Key를 설정합니다.
4.5.2. Signin with Apple 정보 설정
게임에서 Signin with Apple을 사용할 경우, 설정 하도록 합니다.
Signin with Apple을 사용할 경우, SigninWithApple 체크 박스를 클릭합니다.
애플 어드민에서 발급받은 ClientId 항목을 입력합니다.
유니티 버전별로 signin with apple 관련 설정이 추가로 필요합니다.
4.6. Unity SDK 사용시 주의사항
4.6.1. PlayerPref class 사용시 참고
iOS / Android Native SDK에서 내부로직 상 저장이 필요한 값들을 해당 앱 데이터에 저장하는 로직 존재.
개발사에서 게임 데이터 정리를 위해 PlayerPref deleteAll 호출하는 경우 있음 -> 이 경우 SDK에서 필요로 인해 저장한 데이터 삭제되게 되어 SDK 오동작이 발생.
개발사에서 사용하는 key / value를 정리해서 개발사에서 deleteAll이 아닌 deleteKey API를 사용해서 게임에서 저장한 게임 데이터만 삭제하도록 구현해야 함.