Unity3DのIAP

むかしむかし、Unity 4の期間中にゲーム内購入を追加すると、いくつかの問題が発生しました。 既存のプラグインを使用するか、各プラットフォームのネイティブ関数に独自のラッパーを実装するかの2つの方法があります。 最初のケースでは、いくつかのソリューションがありました:Soomla、OpenIAB、Prime、およびその他多数。 それらのいくつかは支払われ、非常に高価でした。プライム価格は約70ドルでした。 一部は無料で、iOSでの動作を拒否しました:OpenIAB。



Unity3D 5.3



そして現在、Unity3D 5.3は、「箱から出してすぐに」と言うアプリ内購入をサポートするようになりました。 このシンプルなツールにより、最も人気のあるアプリストアのアプリ内購入を簡単に実装できます。



現在サポートされています:





プロジェクト統合



まず、[サービス]タブで、[アプリ内購入]フィールドをクリックして、この機能を有効にします。 分析サービスも自動的にオンになり、収益、有料ユーザーあたりの平均収益(ARPPU)、1日のアクティブユーザーあたりの平均収益(ARPDAU)が表示されます。















次に、「インポート」ボタンをクリックする必要があります。その後、必要なすべてのアセットがプロジェクトにインポートされます。









アプリ内マネージャー



次に、IAPで動作するコードを追加する必要があります。 このC#スクリプトには、次の関数が含まれています。





ゲームで使用する



スクリプトの使用方法を明確にするために、例を挙げます。 2つの購入があります。1つは非消耗品、もう1つは広告を無効にし、2つ目はプレイヤーに80コインを提供します。 2つのプラットフォームが使用されます:Google Play、AppStore。 購入ごとに、UnityIAAP、Google Play、AppStoreの購入識別子を含む3つの定数を宣言する必要があります。



public const string pMoney80 = "money_80"; public const string pNoAds = "no_ads"; public const string pMoney80AppStore = "app_money_80"; public const string pNoAdsAppStore = "app_no_ads"; public const string pMoney80GooglePlay = "gp_money_80"; public const string pNoAdsGooglePlay = "gp_no_ads";
      
      





その後、これらの定数を初期化関数に渡す必要があります。



 builder.AddProduct(pMoney80, ProductType.Consumable, new IDs() { { pMoney80AppStore, AppleAppStore.Name }, { pMoney80GooglePlay, GooglePlay.Name } }); builder.AddProduct(pNoAds, ProductType.NonConsumable, new IDs() { { pNoAdsAppStore, AppleAppStore.Name }, { pNoAdsGooglePlay, GooglePlay.Name } });
      
      





ここで、アイテム購入ボタンで、BuyProductID関数を切断し、パラメーターとして販売されているアイテムの識別子を渡す必要があります。







また、PurchaseProcessingResult関数で、購入ごとにアクションを追加します。



 if (String.Equals(args.purchasedProduct.definition.id, pMoney80, StringComparison.Ordinal)) { //Action for money ResourceManager.Instance.Money += 80; } else if (String.Equals(args.purchasedProduct.definition.id, pNoAds, StringComparison.Ordinal)) { //Action for no ads ResourceManager.Instance.NoAds = true; }
      
      





以上です。 AppStoreとGoogle Playで同じ識別子を使用して購入を作成することを忘れないでください。



All Articles