Codeless IAP は、Unity アプリケーションでアプリ内課金 (IAP) を実装する最も簡単な方法です。Unity エディターは、最小限のスクリプト作成で基本的な IAP インテグレーションを設定するためのインターフェースを提供します。
Codeless IAP は、コードを必要とせずに実際の IAP トランザクションを処理します。Codeless IAP を実装するには、エディターを使用して以下の 2 つのステップを実行します。
Unity Purchasing システムは、カタログに加えたプロダクトをランタイムに設定します。プレイヤーが IAP Button を設定すると、関連するプロダクトの購入フローを開始します。
ノート: プレイヤーが新しく購入したコンテンツにアクセスする方法を定義するには、スクリプトを使用する必要があります。詳細については、後述の 購入処理 のセクションを参照してください。
開始する前に、最新の Unity IAP SDK をインストールします。詳細は、Unity IAP の設定 を参照してください。
シーンに IAP Button を追加するには、Unity エディターで Window > Unity IAP > Create IAP Button の順に選択します。
以下の 2 つのどちらかの方法で 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 Buttons または IAP Listeners とともに使用できますこの場合、IAP Button や IAP Listener の最初のインスタンスがシーンにロードされる時ではなく、ゲームの開始時に SDK が初期化されます。ただし、スクリプトで手動でも初期化する場合は、自動初期化を有効にしないでください。エラーが発生する可能性があります。
カタログにプロダクトが 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 Developers ウェブサイト の Google Play の課金システム のドキュメントを参照してください。
Apple 用にプロダクトカタログをエクスポートする手順は以下の通りです。
Apple の Application Loader によるインポートの詳細は、iTunes Connect ウェブサイト の Application Loader の使用 を参照してください。
iTunes を含む一部のアプリケーションストアでは、アプリケーションに Restore ボタンを加える必要があります。Codeless IAP を使用すると、Restore ボタンをアプリケーションに簡単に実装できます。
Restore ボタンは以下の手順で追加します。
ユーザーがランタイムにこのボタンを選択すると、ボタンは使用中のストアの購入を復元する API を呼び出します。この機能は、iOS App Store、Mac App Store、Windows 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 インスタンスにアクセスします。