Version: 2017.1
언어: 한국어
상품 정의(Defining products)
상품 메타데이터 브라우징(Browsing Product Metadata)

초기화(Initialization)

Unity IAP가 애플리케이션에 구매 관련 이벤트에 대해 알리기 위해 사용하는 IStoreListener 인터페이스를 구현해야 합니다.

UnityPurchasing.Initialize 메서드를 호출하여 초기화 프로세스를 시작해 리스너 구현 및 설정을 제공합니다.

초기화는 네트워크를 사용할 수 없는 경우에도 실패하지 않습니다. Unity IAP는 백그라운드에서 계속 초기화를 시도합니다. Unity IAP에서 설정이 잘못되었거나 기기 설정에서 IAP가 비활성화되는 등 복구 불가능한 문제가 발생하는 경우에만 초기화가 실패합니다.

따라서 Unity IAP를 초기화하는 데는 임의의 기간이 소요될 수 있고 비행기 모드에서는 무한한 기간이 소요될 수 있습니다. 초기화가 성공적으로 완료되지 않은 경우 사용자가 구매를 시도하지 않도록 스토어를 디자인해야 합니다.

using UnityEngine;
using UnityEngine.Purchasing;

public class MyIAPManager : IStoreListener {

    private IStoreController controller;
    private IExtensionProvider extensions;

    public MyIAPManager () {
        var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
        builder.AddProduct("100_gold_coins", ProductType.Consumable, new IDs
        {
            {"100_gold_coins_google", GooglePlay.Name},
            {"100_gold_coins_mac", MacAppStore.Name}
        });

        UnityPurchasing.Initialize (this, builder);
    }

    /// <summary>
    /// Called when Unity IAP is ready to make purchases.
    /// </summary>
    public void OnInitialized (IStoreController controller, IExtensionProvider extensions)
    {
        this.controller = controller;
        this.extensions = extensions;
    }

    /// <summary>
    /// Called when Unity IAP encounters an unrecoverable initialization error.
    ///
    /// Note that this will not be called if Internet is unavailable; Unity IAP
    /// will attempt initialization until it becomes available.
    /// </summary>
    public void OnInitializeFailed (InitializationFailureReason error)
    {
    }

    /// <summary>
    /// Called when a purchase completes.
    ///
    /// May be called at any time after OnInitialized().
    /// </summary>
    public PurchaseProcessingResult ProcessPurchase (PurchaseEventArgs e)
    {
        return PurchaseProcessingResult.Complete;
    }

    /// <summary>
    /// Called when a purchase fails.
    /// </summary>
    public void OnPurchaseFailed (Product i, PurchaseFailureReason p)
    {
    }
}
상품 정의(Defining products)
상품 메타데이터 브라우징(Browsing Product Metadata)