유니티 플러그인
개요
+ C#에서 -> Java/Objective-C로 제공되는 카카오 SDK의 API를 호출 -> 결과 다시 C#으로 전달
실행환경
+ 유니티 에디터에서 실행 불가 -> Xcode 프로젝트나 Android프로젝트로 export한 후 테스트
+ 리소스
kakao-unity-plugin unitypackage :
- 카카오 유니티 플러그인 C#클래스와 카카오 유니티 플러그인을 활용한 예제
- JSON 파싱 및 JSON 생성을 위한 SimpleJSON 라이브러리
kakao-unity-plugin
- 유니티 5.0 이하 버전을 위한 패키지 파일
kakao-unity-android-plugin
- 카카오 유니티 플러그인을 안드로이드에서 연동하기 위한 안드로이드 라이브러리 프로젝트
kakao-unity-ios-plugin
- 카카오 유니티 플러그인을 iOS에서 연동하기 위한 Xcode 라이브러리 프로젝트
플로우
+ 게임 -> 유니티 플러그인 -> iOS/AOS 플러그인 -> iOS/AOS SDK -> Activity/Controller -> kakao api -> kakao api Server -> iOS/AOS SDK -> iOS/AOS 플러그인 -> 유니티 플러그인 -> 게임
단계별 플로우
1. Game -> kakao-unity-plugin (폴더 kakao/plugins)
카카오 유니티 플러그인 C#에서 카카오 SDK API를 호출할 수 있는 3개의 싱글톤 클래스 제공
KakaoNativeExtension
KakaoLeaderboardExtension
KakaoInvitationTrackingExtension
비동기 방식으로 구현
메소드 호출 시 파라미터로 전달하는 델리게이트를 통해 API를 호출한 결과값을 반환
유니티 플러그인 API Spec
조건
+ kakao-unity-plugin 패키지가 유니티 프로젝트에 import
+ iOS/Android SDK 연동 작업 완료
초기화, 자동로그인
+ kakao-ios-plugin/kakao-android-plugin 라이브러리 프로젝트가 연동되어 있다면, 유니티에서는 카카오 유니티 플러그인 초기화를 위한 API를 호출해야함
+ 초기화 : 싱글톤 KakaoNativeExtension 클래스의 Instance를 가져온 후 init메소드를 호출 (1회만 호출)
KakaoNativeExtension.Instance.Init(onInitComplete, onTokens);
void onInitComplete() {
KakaoNativeExtension.Instance.Authorized(onAuthorized);
}
void onTokens() {
if( KakaoNativeExtension.hasValidTokenCache()==true ) {
// hasValidTokenCache가 true이면
// 사용자 정보를 요청하는 localuser api를 호출
}
else {
// hasValidTokenCache가 false이면
// logout, unregister를 호출하거나, 토큰이 만료된 경우로 재 로그인을 유도
}
}
void onAuthorized(bool _authorized) {
if( _authorized==true ) {
// _authorized가 true이면
// 사용자 정보를 요청하는 localuser api를 호출
}
else {
// _authorized가 false이면
// 사용자가 로그인을 할 수 있도록 login 버튼 노출
}
}
+ 초기화와 함께 인증 상태에 따른 분기를 위해 아래의 메소드가 사용
Init
초기화 진행 -> 첫번째 파라미터로 전달한 onInitComplete델리게이트가 호출
-> KakaoNativeExtension의 Authorized를 호출하여 SDK 내부에 token 저장여부 체크
-> true / false 로 반환 (true면 사용자 정보를 요청 / false면 로그인버튼)
Authorized
hasValidTokenCache
정리
+ KakaoNativeExtension.cs 호출 Authorized 호출 -> token 저장여부 체크
+ True 면 그 토큰으로 카카오톡 서버 접속 유효성 검사 후 사용자 정보 요청
로그인
+ KakaoNativeExtension 클래스 Login 메소드
파라미터
- KakaoResponseHandler.CompleteDelegate (login 완료 시 호출될 델리게이트)
- KakaoResponseHandler.ErrorDelegate (login 처리 실패나 유저에 의해 취소 시 호출)
Login API
카톡 설치 -> 카카오톡으로 인증 처리
카톡 미설치 -> 웹뷰 Modal로 노출
+ KakaoNativeExtension.Instance.Login
'모바일 개발 > iOS' 카테고리의 다른 글
모바일 개발 기초 (0) | 2021.02.03 |
---|---|
카카오 | SDK 로그인 로그아웃 (0) | 2020.03.12 |
카카오 | SDK 2.0 API (0) | 2020.03.12 |
카카오 | SDK 2.0 (0) | 2020.03.12 |
카카오 | SDK 1.0 (0) | 2020.03.12 |
카카오 게임 입점 (0) | 2020.03.12 |
구글스토어 | 키스토어와 앱서명 (0) | 2020.03.12 |
구글스토어 | 판매자등록 스토어등록 (0) | 2020.03.12 |
댓글