Unity

Unity IAP を使うと意外と簡単に課金機能を実装できた件(Android)

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー





-----------------------------------------------------------------------------------

課金機能は前々から実装してみたいと思っていたのですが、なんか難しそうなので敬遠していました。でもUnity IAPというのを使うと拍子抜けするくらい簡単でしたよ。初心者の人にも分かりやすいように解説したいと思いまーす。

インスペクターの横のサービスというタブをクリック。サインインしろ言われるのでサインインする。

 

プロジェクトID作れとか言われる。知らんけどcreate押したら次へ進んだ。

 

In-App-Purchasing のOFFをクリックしてONにする。

 

Enableをクリック。

 

13歳以下をターゲットにしとるのか?してるならチェック。Continue

 

なんか色々エラーを吐かれる。おかしい。私の見ているサイトではこんなの出なかったのに。1つ目のエラー

「IAPパッケージ3.0以降を実行している場合は、インポートボタンをクリックしないでください。プロジェクトが破損する可能性があります。インストールされているIAPパッケージが2.2.2以下の場合にのみ、インポートボタンをクリックしてください。パッケージマネージャーを参照してください。」

window-->Package Manager 見てみると2.2.1やった。2.2.2以下やからOKってことやんな?

2つ目のエラー

「収益データはUnityアナリティクスに送信されます。 」

「既存のキーのサーバーでエラーチェックが行われました。 もう一度やり直してください。このアプリケーションのGoogle公開鍵を入力して、収益数がGoogleの確認済み支払いを反映していることを確認してください。 」

調べたところ、

--------------------------------------------------------------------

googleにapk登録して公開鍵を取る。

Unity Dashboardの「Analytics Settins」のGoogle License Keyを登録する所にコピペ。(ここのEnterKeyの所に入れてもダメらしいよ。)

--------------------------------------------------------------------

公開鍵なんぞ知らん。そもそもunity analyticsって何なのさってことやけど、なんかプレイヤーの動向を把握したり分析したりするやつだそうです。別にそんなんしないのでもう放置。とにかくimportをクリック。行け

 

import終わるとpluginsにunityPurchasing いうのができる。

 

windowからunity IAP --> Android --> でTarget Google Play にチェック。元から入ってたけど。

 

Create IAP Buttonで課金ボタンを作るよ。これを押すと課金されて私の私腹が肥えるのですね!

 

「出題パターンを増やす」という課金ボタンを配置。このアプリは学習アプリで無料で使えるけれど、もっといろんな問題を勉強したい人は課金ボタン押してね!っていうことなのです。

 

IPA Catalogをクリックして色々設定します。

 

プロダクトIDは適当でええのかな?スリーセブンにしてやろう。

薬草みたいに何度も購入するようなアイテムだとConsumable。

広告消すみたいに1回購入したらずっと効果が続くみたいなのはNon Consumable。

subscriptionはまあ月額課金みたいなのかな。

 

Locale はJapanese。

Title はアプリストアに表示される製品の名前。

Description はこのアイテムの説明。

Priceは価格。

Automatically initialize UnityPurchasingはよく分からんけど自動的に初期化するそうです。recommendedでお勧めされてるのでチェックを入れておく。window閉じる。

 

Product ID にさっきのカタログ(777)がいるので選択。

 

この課金ボタンを押した時の処理を書く。

 

public class Mains : MonoBehaviour
{
    //課金しているかどうか判別
    int KakinFLG = 0;

//UIを見せたり隠したりするのに使う。スケール0にさせて隠す
    GameObject ActPanel;   

 void Start()
    {
        //課金状況データを読み込む
        KakinFLG = PlayerPrefs.GetInt("KakinData", 0);

//課金されてるなら課金ボタンを消しとく
        if (KakinFLG == 2)
        {
            ActPanel = GameObject.Find("BuyButton");
            ActPanel.transform.localScale = Vector3.zero;   //見えなくしておく
        }
}
//-------------------------------------------------------------課金ボタン押した時の処理
    public void PushKakin()
    {
        //課金フラグ立てる
        KakinFLG = 2;

        //課金データに課金されたことを記録
        PlayerPrefs.SetInt("KakinData", KakinFLG);

//課金ボタンさんさようなら
        ActPanel = GameObject.Find("BuyButton");
        ActPanel.transform.localScale = Vector3.zero;   //見えなくしておく
    }
    //-------------------------------------------------------------課金ボタン押した時の処理
}

あとは課金フラグが立ってるかどうかで処理を判別すればOK。

if(KakinFLG==0){広告表示とか}

if(KakinFLG==2){広告非表示とか}

 

スクリプト書いたらそれをボタンに反映させましょう。

On Purchase Complete の+クリック。

 

Noneって所にさっきのスクリプトをアタッチしてるオブジェクトD&D。

 

Functionのところにさっき書いたPushKakin()って関数があるのでそれ選択したらOK。

 

これで課金ボタン押したらこんなのが出てきてBuyを押したらPushKakin()関数が実行され、計画通り。ニヤリ。

でもこれで終わりではありません。

google developers consoleのほうで色々やることがあるそうです。

次の記事へ続きます。

Unity IAP を使うと意外と簡単に課金機能を実装できた件2(Android)

 

------------------------------------------------------------------------------------



-Unity

© 2021 Bou.O The World Powered by AFFINGER5