Codeless IAP の設定ボタン
Codeless IAP ボタンと IAP リスナーを設定して使用すると、複雑なコードを書かずにアプリケーション内課金を有効にし、購入を復元できます。
読み終わるまでの所要時間 2 分最終更新 7日前
Codeless IAPボタンを使用すると、最小限のスクリプトでアプリケーション内課金と復元ボタンを簡単に設定できます。IAP ボタンを使用して、購入および復元機能を UI ボタンに直接追加します。このアプローチは、ユーザーがアプリケーション内で製品を購入または復元するためのシンプルな方法を提供します。
OnProductFetched を使用して製品の詳細を更新
Unity Iap は、アプリケーション ストアから製品情報を取得するときにOnProductFetchedOnProductFetchedpublic class IAPButtonView : MonoBehaviour{ [SerializeField] TMP_Text title; [SerializeField] TMP_Text price; public void OnProductFetched(Product product) { if (title != null) { title.text = product.metadata.localizedTitle; } if (price != null) { price.text = product.metadata.localizedPriceString; } }}
IAP リスナー
Codeless IAP は通常、成功と失敗の購入イベントをシーン内のアクティブな IAP ボタンコンポーネントに送信します。ただし、IAP ボタンの使用は現実的ではありません。例えば、購入処理が中断されて完了しなかった場合、Unity Iap は次回の初期化時 (通常はアプリケーション起動直後で、IAP ボタンがまだ初期化されていない場合) に購入処理を再度試行します。このような場合は、IAP Listener コンポーネントを使用できます。IAP リスナーは、IAP ボタンで処理できない購入イベントを受信し、すべての購入が正しく処理されるようにします。IAP リスナーをシーンに追加して、これらのイベントを自動的にハンドルします。
IAP リスナーを追加するには、次の手順を実行します。
- Unity エディターで、[Services]> [アプリ内課金]> [Create IAP Listener] を選択します。
- 手順に従って、購入処理スクリプトをゲームオブジェクトコンポーネントとして作成します。詳細については、購入処理 を参照してください。
- 階層リストから IAP Listener を選択し、Inspector でその IAP Listener スクリプトコンポーネントを探します。次に、+ を選択して、On Purchases Fetched (Orders) と **On Order Pending (**PendingOrder) の機能を追加します。
- On Order Pending はすべての新規トランザクションを処理し、個々の に対して実行されます。
PendingOrder - On Purchases Fetched は、既存のすべてのトランザクションを処理し、すべてのアクティブな Pending、Confirmed、およびディファードトランザクションを含む オブジェクトで呼び出されます。
Orders
- On Order Pending はすべての新規トランザクションを処理し、個々の
- 購入処理スクリプトを持つゲームオブジェクトをコンポーネントの Inspector のイベントフィールドにドラッグし、ドロップダウンメニューから機能を選択します。
復元ボタン
Apple App Store などの一部のアプリケーション ストアでは、アプリケーションに復元ボタンが必要です。Codeless IAPは、アプリケーションに復元ボタンを実装する簡単な方法を提供します。 復元ボタンを追加するには、次の手順を実行します。- シーンに IAP ボタンを追加します([Services]> [アプリ内課金]> [Create IAP ボタン)。
- IAP ボタンを選択した状態で、Inspector で IAP ボタンコンポーネントを探します。
- 「ボタンの種類」ドロップダウンメニューで、「復元」を選択します。Inspector ウィンドウが更新され、復元 ボタンに関連するフィールドのみがディスプレイされます。
- 任意: プラス(+)ボタンを選択して、にスクリプトを追加します。
On Transactions Restored (Boolean, String)- トランザクション復元スクリプトを持つゲームオブジェクトをコンポーネントの Inspector のイベントフィールドにドラッグし、ドロップダウンから機能を選択します。
ユーザーがランタイムにこのボタンを選択すると、現在のストアの購入復元 API が呼び出されます。Apple App Store では、これは Apple のビルトイン復元または同期フローをトリガーします。 google play では、復元は IAP 初期化の一部です。ランタイムの追加復元呼び出しで結果が得られることはほとんどありません。 Unity Iap は常に Restore IAP ボタンでpublic void OnTransactionsRestored(bool success, string? error){ Debug.Log($"TransactionsRestored: {success} {error}");}
OnTransactionsRestoredOnPurchaseFetchedOnPurchasesFetchedpublic void OnOrderPending(PendingOrder order){ foreach (var cartItem in order.CartOrdered.Items()) { var product = cartItem.Product; // grant purchase... }}public void OnPurchasesFetched(Orders existingOrders){ Foreach (existOrders.ConfirmedOrders の var order) { foreach (var cartItem in order.CartOrdered.Items()) { var product = cartItem.Product; // grant access... } }}