Codeless IAP は、Unity アプリケーションでアプリ内課金 (IAP) を実装する最も簡易な方法です。Unity エディターは、最小限のスクリプト作成で基本的な IAP インテグレーションを設定するためのインターフェースを提供します。
Codeless IAP は、コードを必要とせずに実際の IAP トランザクションを処理します。Codeless IAP の実装は、エディターを使用した以下のような 2 段階のプロセスです。
Unity Purchasing システムは、カタログに加えたプロダクトをランタイムに設定します。プレイヤーが IAP Button を設定すると、関連するプロダクトの購買フローを始めます。
ノート: プレイヤーが新しく購入したコンテンツにアクセスする方法を定義するには、スクリプトを使用する必要があります。 詳細については、後述の 購買の処理 のセクションを参照してください。
まず初めに最新の Unity IAP SDK をインストールします。詳しくは Unity IAP の設定 を参照してください。
シーンに IAP Buttons を加えるには、Unity エディターで Window > Unity IAP > Create IAP Button の順に選択します。
2 通りのうちの 1 つの方法で IAP Catalog GUI を開きます。
次に GUI を使ってカタログのそれぞれのプロダクトに以下の属性を定義します。
ノート: IAP Catalog GUI には、プロダクトを設定するための追加ツールが用意されています。それぞれのストアにアップロードする カタログをエクスポートする 前に、説明と価格情報も入力する必要があります。これらの設定の詳細については、プロダクトの定義 を参照してください。
UnityPurchasing
を自動的に初期化するアプリ内課金を使用するには、IAP SDK を初期化する必要があります。これは、ランタイムに Codeless IAP Button か IAP Listener の最初のインスタンスが読み込まれると自動的に発生します。ただし、 IAP Button や IAP Listener がゲームに表示される前に SDK を初期化する必要があります (例えば、アプリケーションの起動後に IAP Promo オファーを提供するなど)。 このような場合は、 IAP Catalog ウィンドウの下部にある__Automatically initialize UnityPurchasing (recommended)__ にチェックマークを入れます。これにより、アプリケーションの起動時に UnityPurchasing
が直ちに初期化され、コードレスインスタンスのライフサイクルの依存関係が排除されます。
作動するには、カタログに最低 1 つのプロダクトが必要です。
ノート: IAP Button や IAP Listener とまとめて自動初期化を使用できます。 この場合、SDK は、IAP Button や IAP Listener の最初のインスタンスがシーンにロードされる時ではなく、ゲームの開始時に初期化されます。ただし、スクリプトで手動でも初期化する場合は、自動初期化を有効にしないでください。エラーが発生する可能性があります。
カタログに少なくとも 1 つの製品がある場合、購入が完了または失敗したときの IAP Button の動作を定義できます。
購入処理スクリプトサンプル
public void GrantCredits (int credits){
userCredits = userCredits + credits;
Debug.Log("You received " + credits " Credits!");
}
ゲームを実行し、IAP Button を使ってテストします。
購入を行うためには、対応するアプリケーションストアでカタログを設定する必要があります。これを行うには、プロダクトカタログを CSV ファイルとして Google Play にエクスポートするか、XML ファイルとして Apple の Application Loader を通して iTunes Store にエクスポートします。
Google Play 用にプロダクトカタログをエクスポートする手順は以下の通りです。
エクスポートしたカタログを Google Play へアップロードするより詳しい情報は、Android デベロッパーサイト の アプリ内課金の管理 を参照してください。
Apple 用にプロダクトカタログをエクスポートする手順は以下の通りです。
エクスポートしたカタログを Apple の Application Loader を使ってインポートする詳しい情報は、の iTunes Connect ウェブサイト の Application Loader の使用 を参照してください。
iTunes を含む一部のアプリケーションストアでは、アプリケーションに Restore ボタンを加える必要があります。 Codeless IAP を使用すると、Restore ボタンをアプリケーションに簡単に実装できます。
Restore ボタンは以下の手順で設置します。
ユーザーがランタイムにこのボタンを選択すると、ボタンは使用中のストアの購入をリストアする API を呼び出します。 この機能は、iOS App Store、Mac App Store、Windows Store、Samsung Apps、Cloud Moolah App Store で使用できます。他のプラットフォームでは Restore ボタンを非表示にする場合があります。
リストアが成功すると、Unity IAP はそのプロダクトに紐づけられている IAP Button で On Purchase Complete (Product) 関数を呼び出します。
詳細については、 トランザクションのリストア を参照してください。
Codeless IAP は、成功した購入イベントと失敗した購入イベントをシーン階層内のアクティブな IAP Button コンポーネントに送信します。ただし、成功した購入を処理するときにアクティブな IAP Button を持つことが困難、または望ましくない場合があります。例えば、購入が完了する前に中断された場合、Unity IAP は次の初期化時に購入を再度処理しようとします。アプリケーションが起動した直後にこれを実行したい場合、 IAP Button は適切な方法とは言えません。Codeless IAP には、まさにこのような場合のための IAP Listener コンポーネントが含まれています。シーン階層のアクティブな IAP Listener は、IAP Button に割り当てできないすべての購入イベントを受け取ります。
IAP Listener は以下の手順で設定します。
Codeless IAP 機能で、Unity IAP の 拡張機能 のほとんどは公開されていません。ただし、Codeless IAP は既存のスクリプティング API の上に実装されているため、ニーズに合わせて IAPButton.cs (Assets/Plugins/UnityPurchasing/script/IAPButton.cs) スクリプトで多くの機能を変更できます。
Unity IAP の拡張機能を使用するには、IStoreListener.OnInitialize
に返される Unity IAP の IStoreController
と IExtensionProvider
インスタンスにアクセスします。