Version: 6000.3
语言: 中文
订阅产品支持
浏览产品元数据

初始化

您必须提供IStoreListener接口,其中Unity IAPUnity In App Purchase
的缩写 术语表
用于通知您的申请与购买相关的事件。

调用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)
    {
    }
}
订阅产品支持
浏览产品元数据