1.1 Unity SDK 설치
1.1. Unity SDK 설치
- 1 1.1. Unity SDK 설치
- 1.1 1.1.1. 설치 환경 및 실행 환경
- 1.2 1.1.2. SDK 파일 구성
- 1.3 1.1.3. SDK 설치
- 1.3.1 1.1.3.1. Unity 패키지 파일 import하기
- 1.3.2 1.1.3.2. Migration의 경우
- 1.3.3 1.1.3.3. 카카오게임 SDK 설정 인스펙터 열기
- 1.3.4 1.1.3.4. 카카오게임 속성 설정
- 1.3.5 1.1.3.5. 카카오 멀티앱 로그인 기능 사용시 필요한 설정
- 1.3.6 1.1.3.6. 구글 정보 설정
- 1.3.7 1.1.3.7. 페이스북 정보 설정
- 1.3.8 1.1.3.8. Signin with Apple 정보 설정
- 1.3.9 1.1.3.9. Newtonsoft.Json 패키지 설치(SDK 3.15.0 이상)
- 1.4 1.1.4. Android 설정
- 1.4.1 1.1.4.1. Permission 설정
- 1.4.2 1.1.4.2. google-services.json 세팅
- 1.4.3 1.1.4.3. 커스텀 빌드 파일 세팅
- 1.4.4 1.1.4.4. gradle 버전 세팅
- 1.4.5 1.1.4.5. Http 사용 설정
- 1.4.6 1.1.4.6. EDM 설정
- 1.4.7 1.1.4.7. Main Activity 변경하는 방법
- 1.5 1.1.5. iOS 설정
- 1.5.1 1.1.5.1. EDM 설정
- 1.6 1.1.6. 게임 내 지원 언어 리소스
- 1.7 1.1.7. 유니티 에디터 로그인
- 1.8 1.1.8. Unity SDK 사용시 주의사항
1.1.1. 설치 환경 및 실행 환경
최소 버전
Unity 2019.4.15f1 이상 지원
권장 버전
Unity 2020.3.43f1 이상
권장 버전을 사용하지 않을 경우, 아래와 같은 문제가 있습니다.
게임외 앱에서 플레이 중인 음악 볼륨이 작아지는 유니티 버그가 있습니다.
에디터 환경에서 웹소켓 연결이 멈추는 유니티 버그가 있습니다. 이 버그는 에디터 환경에서만 발생하는 이슈로, 안드로이드나 iOS빌드에서는 문제가 없습니다.
"USING MEMORYADRESSES FROM MORE THAN 16GB OF MEMORY" 메시지와 함께 앱 실행시 크래쉬가 발생할 수 있습니다. (관련 이슈)
2018.x 버전에서 Android 12 이상 빌드시 검은 화면만 뜨는 버그가 있습니다.
1.1.2. SDK 파일 구성
전달받은 KakaoGameSDK_Unity_[버전].zip 파일은 다음과 같은 파일들로 구성되어 있습니다.
파일 | 설명 |
---|---|
KakaoGameSDK.unitypackage |
|
SampleApp.zip |
|
ApiReference.zip |
|
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 파일들에 의해 컴파일 에러가 발생할 수 있습니다.
Assets > Reimport All 또는 에디터를 재부팅하면 KGAssetImporter에 의해 자동으로 이전 SDK 파일들을 제거합니다.
이후 SDK 변경 사항들을 수정해주면 됩니다.
1.1.3.3. 카카오게임 SDK 설정 인스펙터 열기
Unity 패키지 파일 import가 되면, Unity3d툴 메뉴에 Kakao라는 메뉴가 새로 생긴걸 확인할 수 있습니다.
ConfigureSDK를 클릭하면, 아래와 같이 카카오게임 SDK 설정이 가능한 인스펙터가 열립니다.
1.1.3.4. 카카오게임 속성 설정
먼저 카카오게임 속성 설정을 해야 합니다. 먼저 설정 항목에 대한 설명을 확인하시길 바랍니다.
카카오게임 SDK 속성 | ||||
---|---|---|---|---|
키 | 타입 | 필수 | 설명 | 예시 |
App Id | String | O | 아래 둘 중 한곳에서 확인할 수 있습니다. | 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. 구글 정보 설정
게임에서 구글(구글게임 포함) 인증을 사용할 경우, 설정 하도록 합니다.
구글 인증을 사용할 경우, Google 체크 박스를 클릭합니다.
iOS앱에서 구글 인증을 할 경우, iOS 클라이언트 ID를 설정합니다.
안드로이드앱에서 구글 인증하거나, 구글 게임 인증을 사용할 경우, Webapp Client ID를 설정합니다.
구글 인증시, 기본 퍼미션외 추가로 더 사용자의 동의를 받을 퍼미션이 있다면, Add버튼을 눌러서 추가하도록 합니다. 없을 경우, 해당 과정은 생략합니다.
1.1.3.7. 페이스북 정보 설정
게임에서 페이스북 인증을 사용할 경우, 설정 하도록 합니다.
페이스북 인증을 사용할 경우, Facebook 체크 박스를 클릭합니다.
페이스북 App Key를 등록합니다.
페이스북 App Title을 등록합니다. 페이스북 로그인창이 뜰때, 노출되는 타이틀입니다.
페이스북 Client Token을 등록합니다.
페이스북 인증시, 기본 퍼미션외 추가로 더 사용자의 동의를 받을 퍼미션이 있다면, Add버튼을 눌러서 추가하도록 합니다. 없을 경우, 해당 과정은 생략합니다.
FB SDK Settings를 클릭할 경우 Facebook SDK에서 생성한 FacebookSettings.assets을 확인할 수 있습니다. 빌드시 제대로 생성되었는지 확인이 필요합니다.
1.1.3.8. Signin with Apple 정보 설정
게임에서 Signin with Apple을 사용할 경우, 설정 하도록 합니다.
Signin with Apple을 사용할 경우, SigninWithApple 체크 박스를 클릭합니다.
애플 어드민에서 발급받은 ClientId 항목을 입력합니다.
유니티 버전별로 signin with apple 관련 설정이 추가로 필요합니다.
// KGPostBuild.cs
if (KGSharedData.instance.useSigninWithApple)
KGIosSupport.AddSigninWithAppleCapability(buildPath);
|
만약, 사용중인 유니티 버전에서 위의 코드에서 빌드 에러가 발생한다면, 해당 유니티 버전이 signin with apple capabilities를 추가하는 기능을 지원하지 않는 버전입니다.
그런 경우라면 우선 ios 타겟으로 빌드 후에 빌드된 Xcode project 상에서 수동으로 signin with apple capabilities를 추가해줘야 합니다.(참고 : 1.3 iOS SDK 설치 | 1.3.3.6. 카카오게임 SDK 속성 설정 참고)
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 설정
unitypackage를 import 후에 Assets/Plugins/Android/AndroidManifest.xml 파일에 게임에서 사용할 permission을 추가
<uses-permission android:name="android.permission.XXXXXX" /> 형태로 추가
1.1.4.2. google-services.json 세팅
게임 설정에 맞는 google-services.json 파일을 다운로드 합니다. (1.2 Android SDK 설치 항목에서 Firebase 콘솔에서 파일 다운로드 받는 방법 참고)
해당 파일을 다운로드 받은 후에 Assets/Plugins/Android 폴더 아래에 위치시킵니다.
윈도우 환경에서 google-services 관련 오류가 있을 경우(SDK 3.15.0 이하)
GitHub - firebase/firebase-cpp-sdk: Firebase C++ SDK 에서 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 : Download Python )
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를 사용하게 되면서 특정 유니티 버전 이하에서는 업그레이드가 필요합니다.
KakaoGameSDK Unity 업그레이드 가이드 | KakaoGameSDK(Android) Unity에서 Android APK를 바로 빌드하기 위한 설정 필요
1.1.4.5. Http 사용 설정
targetSdkVersion을 28 버전 이상으로 설정하고 http 통신을 사용하는 게임은 아래와 같은 설정이 필요합니다.
카카오 게임 SDK 내부에서는 http를 사용하지 않습니다. 개발사에서 cdn등 이슈로 http 콜이 필요한 경우에만 설정합니다.
Kakao SDK v3.8.3 이상 버전 사용 필수
Unity Inspector 내에 Etc Setting(Use as needed) -> Domains to use HTTP(Android) 항목에 Add 버튼을 통해 게임에서 사용할 http domain을 추가
3.10.0 이후 버전에서 다음카페뷰를 로드하는 API가 추가되었는데, 이 API를 사용하기 위해서 모든 HTTP Domain의 호출이 필요한데 아래와 같은 설정이 필요합니다.
Etc Setting -> HTTP Domain -> Use All HTTP Domain Check 설정
1.1.4.6. EDM 설정
EDM가 필요한 라이브러리를 다운로드 해주는 Resolver라는 기능을 제공해주는데, 이와 관련한 설정이 제대로 세팅되었는지 체크가 필요합니다.
먼저, Android Resolver Setting을 클릭합니다. (Menu -> Assets → External Dependency Manager → Android Resolver → Settings)
다음과 같이 세팅합니다.(필요에 따라 다르게 세팅하셔도 상관없습니다.)
1.1.4.7. Main Activity 변경하는 방법
SDK에서 자동으로 mainActivity를 KGUnityPlayerActivity로 변경해주고 있습니다.
메인 액티비티를 변경하기 위해서는 KGSharedData.json를 열어서 customManifest
를 true로 세팅해주시면 됩니다.
1.1.5. iOS 설정
Unity3d툴에서 File -> Build Settings... 메뉴를 선택합니다.
아래와 같이 "Build Settings"창에서 Platfrom을 iOS로 설정하고, "Player Settings..."버튼을 클릭합니다.
카카오게임 SDK의 iOS 최소 지원 버전은 11.0입니다.
Build 버튼을 클릭하여 빌드합니다. 빌드가 성공하면, Xcode 프로젝트가 생성됩니다.
1.1.5.1. EDM 설정
Android 처럼 EDM가 필요한 라이브러리를 다운로드 해주는 Resolver라는 기능을 제공해주는데, 이와 관련한 설정이 제대로 세팅되었는지 체크가 필요합니다.
먼저, iOS Resolver Setting을 클릭합니다. (Menu -> Assets -> External Dependency Manager -> iOS Resolver -> Settings)
다음과 같이 세팅합니다.(필요에 따라 다르게 세팅하셔도 상관없습니다.)
1.1.6. 게임 내 지원 언어 리소스
라이브러리에서 게임 내 지원 언어 외 추가적인 언어 팩이 있거나 해당 언어를 제거하고 싶다면 아래 위치의 폴더에서 세팅해주시면 됩니다.
iOS
iOS 프로젝트를 빌드하여 Xcode 프로젝트를 생성한후
Pods > KakaoGamePublishingSDK > KakaoGameFramework > KakaoGameResources.bundle 파일을 찾아서 '패키지 내용보기' 를 클릭한다.제거 하고 싶은 언어의 폴더를 삭제한다.
Android
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. 에디터 상에서의 카카오 로그인 사용
위와 같이 환경 설정 후에 유니티 에디터 상에서 카카오 로그인을 할 수 있습니다. 사용 방법은 아래 가이드를 참고하시면 됩니다.
로그인시에 Start 호출 → Login 호출 후에 지원하는 IDP 로그인 창 노출 확인 후 카카오 로그인 선택
카카오 인증 정보를 입력 받을 수 있는 UI가 노출됨과 동시에 PC / Mac에 설정된 default web browser로 카카오 로그인 페이지 노출
로그인 페이지에서 카카오 계정으로 로그인 버튼을 누르면 최초에 카카오 계정으로 로그인 팝업이 떠서 로그인이 가능하고 웹 페이지 캐싱에 의해 로그인 한 적이 있으면 바로 로그인 한 응답이 웹 페이지에 노출
웹페이지에 응답으로 노출된 정보를 모두 복사해서 유니티 에디터 상으로 다시 돌아와서 입력창에 입력 후에 OK 버튼
위와 같은 과정을 다 거치면 카카오 인증이 완료되고, 인증된 정보 에디터 환경(C# SDK)에서 해당 정보를 가지고 지니 플랫폼에 로그인해서 정상적으로 playerId와 zat발급 및 로그인 프로세스 완료.
1.1.8. Unity SDK 사용시 주의사항
1.1.8.1. PlayerPref class 사용시 참고
iOS / Android Native SDK에서 내부로직 상 저장이 필요한 값들을 해당 앱 데이터에 저장하는 로직 존재.
개발사에서 게임 데이터 정리를 위해 PlayerPref deleteAll 호출하는 경우 있음 -> 이 경우 SDK에서 필요로 인해 저장한 데이터 삭제되게 되어 SDK 오동작이 발생.
개발사에서 사용하는 key / value를 정리해서 개발사에서 deleteAll이 아닌 deleteKey API를 사용해서 게임에서 저장한 게임 데이터만 삭제하도록 구현해야 함.