본문 바로가기
모바일/모바일 개발

카카오 | SDK 1.0 유니티 플러그인

by KISCH 2020. 3. 12.
반응형


유니티 플러그인



개요

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를 호출한 결과값을 반환



KakaoSDK





유니티 플러그인 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





반응형

'모바일 > 모바일 개발' 카테고리의 다른 글

모바일 개발 기초  (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

댓글