Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- Tutorial
- 문제풀이
- Basic
- C#
- 재귀
- github
- dfs
- 기초
- Class
- guide
- 프로그래밍
- Programming
- w3school
- UE5
- 시작해요 언리얼 2022
- python
- W3Schools
- Algorithm
- dynamic
- String
- c++
- 파이썬
- Material
- Unity
- Unreal Engine 5
- loop
- DP
- 오류
- parameter
- 백준
Archives
- Today
- Total
행복한 개구리
Unity 수업내용 21.07.21. Unity IAP(인 앱 결제) 본문
IAP는 In App Purchase, 인 앱 결제(구매)를 뜻한다.
해당 수업은 GPGS로그인이 필요하므로 먼저 구현해둔 프로젝트를 사용하겠다.


- 우선 Unity - General - Services를 눌러보자.
- 그러면 유니티 에디터에 위 사진과 같은 탭이 뜰 것이다.
그리고 In-App Purchasing을 눌러주자. 그러면 팝업이 하나 뜰 것이다.


- 이런식으로 진행이 되는데, 자신의 계정을 선택해주고 질문에 맞게 선택지를 골라주면 된다.

- 마지막까지 왔다면 다음과 같은 창이 뜰텐데 In-App Purchasing Settings가 OFF상태일 것이다.
- 클릭하여 On으로 바꿔주자.
- 클리하면 여러가지 세팅이 바뀌고 임포팅되며 로딩시간이 있을것이다


- 임포트가 완료되었다면 해당 창으로 바뀔것이다. 여기서 맨 위에 있는 Dashboard를 타고 들어가자.
- Unity Dashboad - 내 앱 - Settings - Analytics Settings로 들어가자.
- 그러면 상단에 Google License Key가 있을 것이다. 해당 키를 1번 사진의 빨간색으로 도배된 칸에 넣어주자.

- 그리고 씬에서 오브젝트들을 생성해보자.
- 여기서 게임오브젝트를 만들 때 IAP버튼을 달아야 한다.
- => 해당 IAP버튼을 누르면 인 앱 결제로 인식하여 데이터를 앱스토어(애플이던 구글이던)쪽으로 보내기 때문.


- 그리고 IAP컴포넌트의 IAP catalog를 누르면 위 사진과 같은 팝업이 뜬다.
- 해당 팝업에서 결제 정보를 입력해야한다.
- 여기서 ID는 구글 개발자 계정(Google Play Console)에서 결제정보의 ID와 일치해야한다.
- =>나는 패키지 이름 + 상품 이름으로 작성했다.
- 사진과 같이 간단하게 작성해주고 씬에서 Product ID를 눌러 생성해둔 카탈로그를 골라서 할당해주자.
- 광고제거와 코인의 차이는 Consumable(소모품)과 Non Consumable(소모 불가)인데, 쉽게 말해서 여러번 살 수 있는 상품 or 한 번만 구매가능한 상품 의 차이일 뿐이다.
- Type에서 상품에 맞게 설정해주면 된다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Purchasing;
using UnityEngine.Events;
public class IAPMain : MonoBehaviour
{
public IAPButton btnCoin500;
public IAPButton btnRemoveAds;
void Start()
{
this.btnCoin500.onPurchaseComplete.AddListener(new UnityAction<Product>((product) =>
{
Debug.LogFormat("Success : Coin 500 : {0}", product.transactionID);
}));
this.btnCoin500.onPurchaseFailed.AddListener(new UnityAction<Product, PurchaseFailureReason>((product, reason) =>
{
Debug.LogFormat("Failed : Coin 500 : {0} // {1}", product.transactionID, reason);
}));
this.btnRemoveAds.onPurchaseComplete.AddListener(new UnityAction<Product>((product) =>
{
Debug.LogFormat("Success : Remove Ads : {0}", product.transactionID);
}));
this.btnRemoveAds.onPurchaseFailed.AddListener(new UnityAction<Product, PurchaseFailureReason>((product, reason) =>
{
Debug.LogFormat("Failed : Remove Ads : {0} // {1}", product.transactionID, reason);
}));
}
void Update()
{
}
}
- 그리고 코드는 굉장히 간단하게 작성했다.
- 샀으면 샀다고, 실패했으면 실패했다고 뜨게 했다.

- 그리고 Google Play Console에서 수익 창출 설정을 해준다.
- =>나는 이미 한 상태이기 때문에 해당 창이 뜬다.



- 이어서 제품 - 인앱 상품을 설정해준다.
- 인앱상품 - 상품 만들기를 누르면 상품 만들기 창으로 넘어가는데, 여기서 제품 ID는 우리가 Unity Editor - IAP Button - IAP catalog 에서 만들어둔 ID를 입력해주고(일치해야한다.)
- 이름과 설명을 모두 적어준 뒤 기본 가격을 설정해주면 된다.
- 가격은 가격 설정을 눌러주면 가격 수정 창이 나오는데 여기서 설정해주면 된다.
자 이제 연동이 끝났으니 에디터에서 테스트해보자.


- 상품을 누르면 FakeStore에서 코인 500을 살 것이냐고 물어보고 사겠다고 하면
- 상품구매에 성공했다고 뜬다.

이제 빌드해서 테스트해보자.
빌드할 때는 결제자의 정보가 필요하므로 이전에 구현했던 GPGS의 로그인씬을 붙여서 빌드했다.


- 로그인에 성공했다면 IAP씬으로 넘어갈 것이다.
- IAP씬에서 구매버튼을 누르면 결제창이 뜨고 구매를 하면 오른쪽과 같이 개발자인 나에게 결제메일이 날아온다.
- RemoveAds도 마찬가지.
'소셜 로그인 > 수업내용' 카테고리의 다른 글
| 소셜로그인 수업내용 21.07.09 . Facebook 로그인 (0) | 2021.07.09 |
|---|---|
| 소셜로그인 수업내용 21.07.08. 카카오로그인 (0) | 2021.07.08 |
| 소셜로그인 21.07.08. 구글 애널리틱스(Google Analytics) (0) | 2021.07.08 |
| 소셜로그인 21.06.30. Firebase - Google (0) | 2021.06.30 |
| Unity 수업내용 21.06.24. Naver로그인 (0) | 2021.06.24 |