Unity 구매 처리 가이드
이 문서는 Unity에서 사용자가 상품을 구매하는 과정을 간단하게 설명합니다. 여기서는 IStoreController를 사용하여 구매를 처리하는 방법에 대해 다루며, 예시를 통해 이해를 돕고자 합니다.
1. 구매 시작
사용자가 상품을 구매하고자 할 때, IStoreController
의 InitiatePurchase
메서드를 호출하여 구매하려는 상품을 식별합니다. 아래는 구매 시작을 위한 코드 예시입니다.
// 사용자가 '구매' 버튼을 눌렀을 때 호출되는 메서드
public void OnPurchaseClicked(string productId) {
controller.InitiatePurchase(productId);
}
2. 구매 결과 처리
어플리케이션은 구매의 성공 또는 실패에 대한 결과를 비동기적으로 받습니다. - 구매가 성공한 경우: ProcessPurchase
가 호출됩니다. - 구매가 실패한 경우: OnPurchaseFailed
가 호출됩니다.
3. 구매 처리 흐름
단계 | 설명 |
---|---|
1 | 사용자가 '구매' 버튼을 클릭합니다. |
2 | InitiatePurchase 메서드가 호출됩니다. |
3 | 비동기적으로 구매 결과(성공/실패)가 처리됩니다. |
4 | 성공 시 ProcessPurchase 가 호출됩니다. |
5 | 실패 시 OnPurchaseFailed 가 호출됩니다. |
4. 활용 예제
예제 1: 간단한 구매 버튼 UI 구현
using UnityEngine;
using UnityEngine.UI;
public class PurchaseManager : MonoBehaviour {
public Button buyButton;
private IStoreController controller;
void Start() {
buyButton.onClick.AddListener(() => OnPurchaseClicked("example_product_id"));
}
public void OnPurchaseClicked(string productId) {
controller.InitiatePurchase(productId);
}
// 구매 결과 처리 메서드
public void ProcessPurchase(PurchaseEventArgs e) {
// 성공 처리 로직
}
public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason) {
// 실패 처리 로직
}
}
예제 2: 구매 후 보상 처리
구매가 완료되면 사용자가 보상을 받을 수 있도록 추가 로직을 구현할 수 있습니다.
public void ProcessPurchase(PurchaseEventArgs e) {
// 사용자에게 보상 아이템 지급
GiveRewardToUser(e.purchasedProduct);
}
public void GiveRewardToUser(Product product) {
// 보상 지급 로직
Debug.Log("상품 " + product.metadata.localizedTitle + " 을 구매하셨습니다!");
}
5. 결론
이번 가이드를 통해 Unity에서 상품 구매를 처리하는 방법에 대해 배웠습니다. IStoreController
를 활용하여 간편하게 구매 프로세스를 구현할 수 있으며, 비동기 결과 처리로 더욱 유연한 사용자 경험을 제공할 수 있습니다. 다양한 샘플 코드와 활용 방안을 통해 실제 프로젝트에서 구현해 보시기 바랍니다.