Version: 2017.3
Codeless IAP
初期化

プロダクトの定義

アプリケーションでは、販売するプロダクトの一覧を提出しなければなりません。コードを使ってアプリケーション内で行うことができます。

プロダクトタイプ

プロダクトは以下の 3 種類に別れます。

Consumable 繰り返し購入することができるタイプ。仮想通貨のような消費型アイテムに適しています。復元することはできません。
NonConsumable 一度のみ購入できるタイプ。ステージの追加など条件のスイッチのようなものに適しています。復元することができます。
Subscription 定期購入することができるタイプ。復元することができます。

アプリケーション内で直接プロダクトを定義

ConfigurationBuilder を使ってプロダクトリストをプログラムで宣言できます。

すべてのプロダクトに対して一意のストア共通 ID と前述のプロダクトタイプを提示します。

using UnityEngine;
using UnityEngine.Purchasing;

public class MyIAPManager {
    public MyIAPManager () {
        var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
        builder.AddProduct("100_gold_coins", ProductType.Consumable);
        //Unity IAP を初期化...
    }
}

ストア特有の ID

デフォルトでは、Unity IAP は、プロダクトはすべてのアプリストアで同じ ID を使用していると仮定します。

例えば、前述の例では、Unity IAP はどのアプリストアと通信するときでも “100_gold_coins” の ID を使用します。

同じプロダクト ID をすべてのストアで使用することができない場合もあります。例えば、iOS と Mac ストアでパブリッシングするときに開発者が同じプロダクトID を使用することは禁止されています。

このような場合、Unity IAP に (プラットフォーム共通 ID とは異なる) プロダクトの正しい ID を知らせる仕組みがあります。

using UnityEngine;
using UnityEngine.Purchasing;

public class MyIAPManager {
    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}
        });
        //Unity IAP を初期化...
    }
}

この例では、このプロダクトは Google Play では “100_gold_coins_google”、Mac App Store では “100_gold_coins_mac” で示されています。

可能な限り、すべてのストアで同じプロダクト ID を使用することが推奨されます。

定義している各ストアのプロダクト ID を変更しても Unity からストアに通信を行うときは、Unity IAP で定義したプロダクト ID を使用するようにしてください。API の呼び出しを行うときはクロスプラットフォームに対応したプロダクト ID を使用し続ける必要があります。

Codeless IAP
初期化