일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 프로그래밍
- 오류
- Programming
- 재귀
- python
- UE5
- guide
- Basic
- w3school
- loop
- dfs
- C#
- Unreal Engine 5
- Unity
- W3Schools
- Material
- github
- Class
- 문제풀이
- Tutorial
- 시작해요 언리얼 2022
- 백준
- parameter
- 기초
- dynamic
- Algorithm
- DP
- c++
- 파이썬
- String
- Today
- Total
행복한 개구리
Unity Google IAP(인 앱 결제, In App Purchase) 구현하기 본문
https://bodong2.tistory.com/573
Unity 소셜 로그인 - Google
간만에 소셜 로그인 구현을 해볼까 합니다. 오늘은 Google 로그인을 구현할 것이고 준비물은 아래와 같습니다 Google 개발자 계정 Unity(Android 프로젝트) 구글 로그인은 Naver, Kakao, Google, Facebook(현 Meta.
bodong2.tistory.com
이전 게시물에서 Google로그인을 구현한 프로젝트에서 이어 진행합니다.
Unity IAP는 구현하기 상당히 쉽습니다.
Unity 프로젝트에서 Ctrl + 0을 눌러주세요 그럼 Services 창이 뜰겁니다.
또는 Window > General > Services를 눌러주세요.
나온 Services탭에서 In-App Purchasing을 선택하고 조직을 정하고 프로젝트 ID를 생성합니다.
이어서 13세 미만 아이들을 목표로 하는 앱이냐고 물어보는 바에 잘 대답해 주시고 저장합니다.
켜줍시다.
새거가 좋아보이니 최신버전을 설치해봅시다.
이후 갱신된 창을 보면 오류가 있다고 나옵니다.
이것은 Google Play Console의 라이센스 키를 할당하면 사라집니다.
이것은 Google Play Console > 해당 프로젝트 > 수익 창출 섹션 > 수익 창출 설정에 들어가보면 라이선스 키를 찾을 수 있습니다.
만약 Unity내의 IAP에서 설정이 되지 않는다면 Dashboard로 가서 할당해도 된다고 합니다.
Unity 프로젝트의 서비스 창이나 Unity 대시보드에 라이선스 키를 할당해줬다면 프로젝트로 돌아가서 상품들을 만들어봅시다.
IAP를 사용하기 위해선 위와 같이 Button에 IAP Button컴포넌트를 추가적으로 달아줘야 합니다. IAP컴포넌트를 달아주면 버튼을 누르는 순간 인 앱 결제 요청을 보냅니다.
그리고 IAP Catalog를 열어 상품ID와 Type를 지정해야합니다.
상품의 ID는 소문자와 언더바(_), 마침표(.) 등을 허용합니다.
그리고 아래쪽에 있는 자동 초기화 옵션을 둘 모두 켜주는게 좋습니다. 특히 UnityPurchasing초기화는 코드로 초기화할 것이 아니라면 꼭 체크해주세요.
상품 ID를 작성했다면 타입을 지정해야합니다.
타입은
- Consumable - 반복 구매가 가능한 상품
- Non Consumable - 1회만 구매 가능한 상품
- Subscription - 구독형 상품
으로 나뉩니다.
용도에 맞게 설정해주시면 됩니다.
ID와 Type만 지정했다면 상품설정은 끝났습니다. 이제 Google Console로 가봅시다.
프로젝트를 등록한 앱을 선택하고 수익 창출 섹션 > 제품 > 인앱 상품 으로 들어가서 상품을 만들어야 합니다.
'상품 만들기'를 클릭하고 열린 페이지에서 제품 ID는 우리가 Unity의 IAP Catalog에서 작성한 상품의 ID와 완벽히 일치해야합니다.
나머지 사항들은 적절히 작성하시고 '저장'을 누르시고 '활성화'해주세요. 그래야 Unity에서 설정한 IAP상품과 Google의 인앱결제가 연계가 됩니다.
상품이 등록되어 활성화됐다면 위 사진과 같이 나옵니다.
이제 다시 Unity로 돌아가봅시다.
상점을 관리할 스크립트를 하나 만들어줍니다.
iapBtn_Recommend_MegaSuper.onPurchaseComplete.AddListener(new UnityAction<Product>((product) =>
{
Debug.Log($"Success : Recommend_MegaSuper : {product.transactionID}");
}));
iapBtn_Recommend_MegaSuper.onPurchaseFailed.AddListener(new UnityAction<Product, PurchaseFailureReason>((product, reason) =>
{
Debug.Log($"Failed : Recommend_MegaSuper : {product.transactionID}, {reason}");
}));
IAP Button 컴포넌트는 스크립트에서 이런식으로 구매에 성공했을 때, 실패했을 때 앱이 실행할 코드를 작성할 수 있습니다.
예를 들면 구매성공했을 때 인게임 재화를 지급한다던가 혜택을 활성시키는 그런 부분이겠죠.
(버튼의 실행과 마찬가지로 Start 메서드에 넣으면 실행됩니다.)
이제 구독상품을 설정해봅시다.
구독상품이나 인앱 상품이나 다른점은 별로 없습니다.
우선 IAP Catalog에서 Type을 Subscription으로 설정해주세요.
마찬가지로 상품의 ID는 GoogleConsole의 제품 ID와 일치시켜야 합니다.
이제 Google Console에서 수익 창출 > 제품 > 정기결제 탭으로 들어가 '구독 만들기'를 눌러주세요.
마찬가지로 제품 ID를 Unity IAP 카탈로그의 상품 ID와 일치시켜주시고 이름은 적절히 지어주세요.
이어지는 페이지에서 여러 설정이 가능하지만 필수 사항은 가격설정과 활성화 뿐입니다.
기본 요금제 추가 해주세요.
ID는 적절히 지어주시고 여러 설정들을 맘에 들게 맞춰주세요. 그리고 가격설정을 해주시고 저장 - 활성화 해주시면 구독상품이 만들어져서 활성화됩니다.
만약 가격설정에서 국가가 너무 많거나 하나도 설정이 안돼있다면 가격 및 재고의 우측에 있는 사용 가능한 국가/지역 관리 에서 국가를 다시 설정해주시면 됩니다.
완료되면 위와 같이 활성되어 목록에 나타납니다.
이제 빌드를 떠서 확인해봅시다.
로그인하여 설정한 상품을 클릭하면 위와 같이 테스트카드로 결제를 하게 됩니다.
그리고 이후에는 Non Consumable(한 번만 구매가능) 상품이라면 오른쪽 사진같이 이미 보유하고 있다고 나옵니다.
계정이 구매한 것으로 인식되어 이후 테스트할 때 계속하여 보유한 아이템이라고 뜰 수 있는데, 이 부분은 Google Play Console에 들어가서 앱을 선택하지 않은 페이지에서 좌측에 '주문 관리'로 들어가면 됩니다.
들어가서 구매한 주문을 선택하고 환불을 눌러줍니다.
환불 페이지에서 자격 삭제를 체크해주시면 다시 Non Consumable 상품을 구매할 수 있게 됩니다.
Consumable로 설정했다면 몇번을 결제해도 위와 같은 창이 나옵니다.
Subscription 상품은 위와 같이 테스트를 위해 5분주기로 짧게 설정됩니다.
이것을 승인하고나면 오른쪽 사진과 같이 이미 구독중인 서비스라고 나옵니다.
구독 중인 테스트 상품은 구독관리에 들어가서 취소할 수 있습니다.
'Unity > 공부내용' 카테고리의 다른 글
Unity 소셜 로그인 - Google, Firebase 연동 (0) | 2022.10.04 |
---|