Soomlaで非消費型アイテムを購入するサンプル

Soomlaで、非消費型仮想アイテムを購入するUnityアプリを作って、課金をテストしてみる。

バナナを買う!

このアプリでは、仮想のバナナをGoogle Play Storeから購入する。
(バナナはどちらかというと消費型アイテムな気がするが…)

アプリの動作

アプリの基本的な動作は、以下の通り。

  • 起動時に、アイテムが購入済みか確認する
  • 購入済みなら、購入済みの画面を表示する(リストア)
  • 未購入なら、購入する画面を表示する
  • 購入すると、購入済みの画面を表示する

購入画面、購入済み画面は、下図のようになる。

画面遷移

準備

前回と同じく、Google Play Developer Consoleでアプリを、APKをアップロードせずに新規作成し、ライセンスキーを取得する。

実装

プロジェクトの作成

まずは、BananaStoreという名前で、新しいプロジェクトを作成する。

シーンの作成

Soomlaをインストール済みなら、ここからSoomlaをインポートできる。Set up default for:は、2Dにする。

シーンの作成

Assetsの下に、BananaStoreというディレクトリを作り、その中にBananStoreSceneというシーンを作る。画像も同じ場所に配置し、Texture TypeSpriteにする。

シーンの作成

シーンの階層には、購入ボタン用のスプライト(BananaSprite)、デバッグ表示用のGUIテキスト(BananaLabel)、Soomla/Prefabsディレクトリに入っているプレハブ(Store Events, Core Events)を配置する。スプライトには、バナナを購入画面を貼り付ける。

シーン階層

スプライトには、バナナを購入画面を貼り付ける。

スプライト

スプライトを、ボタン代わりにしてタッチ判定させたいので、Box Collider 2Dもアタッチする。

Soomlaの設定

Window -> Soomla -> Edit Settingsから、Soomlaの設定インスペクタを開き、Soomla SecretAPIキーをセットし、Test Purchasesにチェックを入れる。Test Purchasesがチェックされていないと本当に課金されてしまうので注意!

スクリプトの作成

BananaStoreディレクトリ内に、BananaStoreAsset.csBananaStoreScript.csを作り、BananaStoreScriptBananaSpriteにアタッチする。

スクリプト

BananaStoreAssets.cs

BananaStoreAssetsでは、アプリ内アイテムを定義する。今回は、非消費型アイテムのバナナを1個だけ定義する。

BananStoreScript.cs

BananStoreScriptでは、購入ボタンの表示切り替えと購入処理を行う。ラベルとスプライトのリンク先は、以下の通り。

リンク

リストア処理(OnRestoreTransactionsFinished)は、Soomlaの初期化後に呼ばれる。

これでアプリは完成なので、パッケージ名やキーストアを設定してAPKをビルドする。

Google Play Developer Consoleの設定

Google Play Developer Consoleのアプリ設定を開き、APKをベータ版としてアップロードする。

アプリ内アイテムに、BananaStoreAssetsで定義したIDと同じIDでアイテムを登録して、アイテムを公開状態にする。

その他、必要な情報をすべて入力して、アプリを公開する。

テスト用Googleアカウントも設定しておく。

テスト

しばらく待って、ストア情報が反映された後に、実機にアプリを転送して、テスト用アカウントから起動すると、以下のような画面が表示される。

初回起動画面

初回は、リストアするものがないのでリストア失敗の表示が出る。

スプライトをタッチすると、購入ダイアログが表示される。購入ボタンを押すと、購入画面に遷移する。

購入ダイアログ

アプリを完全に終了してから、起動すると、アイテムがリストアされる。

リストア

これでSoomlaの課金関連の話は終わり。Soomlaには、課金以外の便利な機能がいろいろあるので、そのうち試してみたい。

執筆時のコンテンツのバージョン

Unity: 4.5.2f1
Soomla: 1.5.3

Soomlaで非消費型アイテムを購入するサンプル」への2件のフィードバック

  1. ぽにっくす

    バナナおもろかったですwww
    参考にもなりましたー!!!

  2. fumobox 投稿作成者

    ありがとうございます。
    お役に立てれば幸いですw

コメントは停止中です。