반응형
- 코드 작성
using UnityEngine;
using UnityEngine.Purchasing;
public class IAPManager : MonoBehaviour, IStoreListener
{
private static IStoreController storeController;
private static IExtensionProvider extensionProvider;
// 인앱 결제 제품의 ID
private string productID = "your_product_id";
void Start()
{
InitializePurchasing();
}
private void InitializePurchasing()
{
if (IsInitialized())
{
return;
}
var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
builder.AddProduct(productID, ProductType.NonConsumable);
UnityPurchasing.Initialize(this, builder);
}
private bool IsInitialized()
{
return storeController != null && extensionProvider != null;
}
public void BuyProduct()
{
if (IsInitialized())
{
Product product = storeController.products.WithID(productID);
if (product != null && product.availableToPurchase)
{
storeController.InitiatePurchase(product);
}
else
{
Debug.LogError("제품을 구매할 수 없습니다.");
}
}
else
{
Debug.LogError("Unity IAP 초기화 실패.");
}
}
public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
{
storeController = controller;
extensionProvider = extensions;
}
public void OnInitializeFailed(InitializationFailureReason error)
{
Debug.LogError("Unity IAP 초기화 실패: " + error);
}
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
{
// 구매 처리 (컨텐츠 잠금 해제 등)
Debug.Log("구매 성공: " + args.purchasedProduct.definition.id);
// 여기에 구매한 아이템을 잠금 해제하거나 제공하는 로직을 추가할 수 있습니다.
return PurchaseProcessingResult.Complete;
}
public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
{
Debug.LogError("구매 실패: " + product.definition.id + ", 사유: " + failureReason);
}
}
반응형