初期化
Initialize Unity In-App Purchasing by supplying a store listener and configuration.
読み終わるまでの所要時間 2 分最終更新 1ヶ月前
Unity IAP を使用してアプリ内で購入関係のイベントを受け取るには インターフェースを実装したクラスを作成する必要があります。
IStoreListenerリスナーの実装と構成を行う初期化処理は を呼び出すことで開始されます。
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) { }}