본문 바로가기
유니티 게임 개발/오류&개발TIP

유니티 Prime31 인앱플러그인 사용법

by 헝탱 2015. 5. 22.
반응형

쉽다고 구매해서 샀지만 정작 사용법 보다는 코드 분석이 난무했던 에셋이다.


여기 저기 검색하면서 엄청 화가 났다. 코드 분석도 좋은데 사용법이라고 글 올려놓고 죄다 코드분석하고 있다.


코드 분석해서 새로운 에셋을 만들려고 하나? 구매했으면 사용법만 딱 적으면 되는거 아닌가?


라는 생각과 혹시나 까먹게 되면 또 찾다 화날지 모르니 개인적으로 포스팅을 할려합니다. 


어떤 글보다 쉽게 목적 만 가르쳐 드릴 것을 약속드립니다.



1. 에셋 구매


그냥 구매하세요. 안드로이드 네이티브 구현인가 뭐시기인가 해봤는데 최신버전으로 바뀌면서 이미지도 바뀐거 같고.. 


삽질많이 하면 된다는데 프로그램을 전문적으로 배운사람들 이야기이고 프라임31이 아닌 안드로이드 네이티브 인가? 


그것도 좋다고 하는데 사용을 안해봤으니 나중에 사용하게 되면 또 그걸로 적도록 하겠습니다.



2. 뭘써야 하나?


다른거 신경쓰지말구요.


"GoogleIABEventListener" , "IABUIManager"


2개만 있으면 됩니다. (경로는 모두 데모 폴더에 있습니다.)


GoogleIABEventListener 는 간단하게 IABUIManager에 적힌 명령어를 받아서 처리해주는거니깐 보상처리 아니면 건들일이 없어요. 절대! 네버! 모든 처리는 IABUIManager의 메소드가 해결해줍니다.



3. IABUIManager 알아보기


실상 쓰이는 메소드는 몇개 안되지만 간단하게 적겠습니다.

클래스 명은 꼭 이거가 아니여도됩니다. 


메소드을 읽어들이게만 하면 됩니다.


3.0 명령어 쓸수있게 하기

using Prime31;

이거 위에 적어야 합니다. 개발하다보면 다 알죠 이건.


3.1 라이선스키 불러오고 초기화

이것도 Start() 에 선언해줍니다. 

 var key = "어플리케이션용 라이선스키";

 (구글 개발자 페이지 -> 모든어플리케이션 -> 자신이 올린 앱 -> 서비스및 API -> 라이선스및 인앱결제에 있음)

 GoogleIAB.init( key );


3.2 명령어 모음 (1)

이것도 Start() 에 선언해줍니다

 ※ 정확히는 모르지만 설명해드리면 "SKU (Stock Keeping Unit) : 재고 보관 단위 상품 관리, 재고 관리를 위한 최소 분류 단위로 개별적인 상품이라고 함." 라는데 이해되는 분은 쓰시구요. 혹시모르니 자신이 등록한 상품을 적어서 선언만 해두세요. 딱히 문제 되는것도 없으니 있으면 댓글로 달아주세요. 


 var skus = new string[] { "상품명", "상품명" };

 GoogleIAB.queryInventory( skus );


(2) 구매하기

 ※ 이건 선언하면 바로 구매모듈 켜집니다. 그냥 구매까지 됩니다.


 GoogleIAB.purchaseProduct( "상품명" );


(3) 구매소모

 ※ 여러번 구매가 가능한 상품인 경우에 해당 상품을 사용하게 하는 명령어로 이 명령어를 한번 읽어야 두번이상 구매가 가능하다고 합니다.


 GoogleIAB.consumeProduct( "상품명" );


(4) 구매 동시에 값 도출

 ※ GoogleIABEventListener에 따로 설정하지 않아도 된다고 하는데 별로 맘에 안들어서 그냥 GoogleIABEventListener에 따로 설정합니다. 관리도 귀찮을거 같기도 해서요.


 GoogleIAB.purchaseProduct( "상품명", "적용 변수/함수" );


(5) 구매 복구

 ※ 구매 복구도 가능합니다. 이건 적기 귀찮고 

http://cafe.naver.com/unityhub/16649

이분이 잘썼고 저도 이분 글 때문에 대충 알아 챘던거 같습니다.

원하는분만 찾아서 쓰세요.


4. GoogleIABEventListener 알아보기


스크립트를 그대로 갔다가 인앱을 구매하는 버튼을 누르면 활성화가 됬다가 안됬다하는 오브젝트에 그냥 넣으셔도 됩니다.

(저는 위의 스크립트와 같은 오브젝트에 부여했습니다.)


OnEnable, OnDisable 위에 말한것처럼 하면 신경안쓰셔도 됩니다.


아래의 메소드들은 따로 어디서 불러오지 않아도 자동으로 위의 명령어들을 쓰면 읽힙니다.

그냥 읽힐때 어떤 행동이 일어날지만 정해주면 됩니다.


billingSupportedEvent, billingNotSupportedEvent 신경안써도 됩니다. 원하시면 검색해서 보세요.

queryInventorySucceededEvent 아까 말했던 구매복구하는 메소드입니다.

queryInventoryFailedEvent 구매 복구 실패할 때 실행됩니다.


purchaseSucceededEvent 구매를 성공하면 아래의 행동을 합니다. 여기서 대부분 아래와 같이 하면 될거 같습니다.


 if (purchase.productId == "상품명") 

{

"구매시 상품 주는 코딩"

}


purchaseFailedEvent 실패했을때 나오는 건데 팝업을 띄우고 싶으면 사용하세요.

consumePurchaseSucceededEvent 사용하는 아이템을 사용 성공하면 읽히는 메소드

consumePurchaseFailedEvent 반대로 실패하면 나오는 메소드


대강 다설명했습니다.


5. 상품명?


금방 찾는 글이지만 알려드리겠습니다.

상품등록은 우선  (구글 개발자 페이지 -> 모든어플리케이션 -> 자신이 올린 앱 -> 인앱상품 탭에 있습니다.)

프라임이 임포트 된 상태에서 빌드한 APK를 올려야 해당 탭은 열립니다.


그리고 상품을 등록할때 관리되는 제품은 1회성 상품 (광고제거와 같은것들을 팔 때)

관리가 되지 않는 제품은 여러번 구매할 수 있는거 (보석 구매와 같은것들을 팔 때)

구독은 요즘 정액제로 결제하는 하는 모바일 게임들이 사용 합니다. (정기결제입니다.)


코딩에 적는 상품명은 처음에 등록할때 적는 네임이 상품명입니다. 그래도 적으면 됩니다.


6. 인증 머시기 뜹니다.


앱게시가 되지 않은 상태에서는 인앱이 확인 불가합니다.

그러니 상품명에 "android.test.purchased"를 넣으면 관계없이 구매가 가능합니다.

인앱 상품에 등록되지 않고 앱게시가 되지 않더라도 확인할 수 있는 상품명이니 잘 활용해주세요.


앱게시는 대충 3~4시간 걸리더라구요. 그리고 개발자 자기 자신은 구매가 불가능하고

개발자 페이지 왼쪽의 톱니에서 "테스트 권한이 있는 Gmail 계정" 에 자신의 테스트 디바이스나 

테스트 계정으로 결제 테스트를 하면 되겠습니다. 


7. 마치면서


정말 대충 적었지만 필요한것만 적었습니다.

더 알고 싶으면 검색하시구요. 갠적으로 프라임31의 코드 분석하려고 구매한분은 적은것 같습니다.

차라리 그냥 네이티브 구현 강좌보고 하시는게 돈아끼고 좋습니다.

비싼돈 주고 샀으면 그냥 모르고 써도 될것 같은데 다들 이상한 설명만 적어놔서 글을 적게 됬습니다.


반응형

댓글