SlideShare a Scribd company logo
Unity課金ゲームアプリ開発ハンズオン!
1
アプリ内課金をゲームアプリに実装しよう!
P3 itemstoreってなに??
2
P10 アプリに課金アイテムを入れたい
P60 販売する課金アイテムの登録
P74 itemstoreを使ってアプリ内課金を実装する
P115 itemstoreの機能
P27 itemstore登録とSDKの入手
P32 itemstore SDKの導入
P41 デベロッパーサイトでの設定
P35 アプリのビルド
P100 テスター登録
P112 実機でテスト購入
itemstoreってなに??
3
itemstoreとは
アプリ内課金を導入したい開発者への支援サービス
● Android / iOSアプリに、簡単に課金機能が実装できる!
● Unityにも対応!
● 無料のトライアルプランですぐにスタート!
4
登録は無料です
5
https://item-store.net/
サーバーを自分で用意しなくていい!
● アイテム名や説明文、アイテムのアイコン画像もいつでも変更可能。ショップの
画面はデザインを選ぶだけでOK! 変更した内容はアプリ側へ即時反映され
ます。
● あらかじめ登録しておいたアイテムの表示 / 非表示を切り替えることで、期間
限定セール等を実現。
● アイテム所持数や購入履歴などのユーザーデータを管理画面で閲覧・編集可
能。
● アイテム購入者、未購入者をターゲットとしたプッシュ通知を配信できます。
● 別端末への引き継ぎ機能もあります。
6
itemstore BLOG
http://blog.item-store.net/
アプリ内課金のお役立ち情報やTIPSがたくさん。
7
8
Unityで作ったスマホアプリに、
アプリ内課金を導入してみましょう!
9
ここからUnityで操作します!
アプリに課金アイテムを
入れたい
10
教材プロジェクトについて
今回のハンズオンでは、Unity公式チュートリアルの『Space Shooter』を使用して進めて
いきます。(配布したプロジェクトは改造済み)
Space Shooter tutorial
https://unity3d.com/jp/learn/tutorials/s/space-shooter-tutorial
11
Asset Store
UnityでAsset Storeを開き、「Space Shooter」で検索すると出てきます。
https://assetstore.unity.com/packages/essentials/tutorial-projects/space-shooter-tu
torial-13866
12
Space Shooter → シューティングゲーム
敵を倒したらスコアが獲得できる。
スコアを稼いで自機を強化できるようにしよう!
● 獲得したスコア分のコインを入手
● コインを使って自機を強化(移動スピード、弾のスピード)
● コインを課金アイテムとして購入可能にする(ゲーム内通貨 = 消費型)
● 買い切りタイプの課金アイテムでショットの本数を増やす(非消費型)
どんな課金アイテムを入れよう?
13
『Space Shooter』を改造したプロジェクト
『itemstore_HandsOn.zip』を解凍し、同梱されているSpace Shooterのプロジェクトをご
用意ください。
※教材プロジェクトは Unity 2017.1.0f3 で作成しています。
14
以下が実装済みです。
● スマホ入力に対応
● コイン獲得処理
● タイトル画面、UI
● 自機を強化する処理
Space Shooter
Projectの、Assets -> _Complete-Game -> Scenes -> Done_Main
を開いてください。
15
操作方法を確認しよう
Assets -> _Complete-Game -> Scripts -> Done_PlayerController.cs
FixedUpdate()
Horizontal?
Vertical?
16
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
操作方法を確認しよう
Assets -> _Complete-Game -> Scripts -> Done_PlayerController.cs
Update()
Fire1?
17
if(Input.GetButton("Fire1") && Time.time > nextFire)
{
〜
GameObject bolt = Instantiate(shot, shotSpawn.position, shotSpawn.rotation);
bolt.GetComponent<Done_Mover>().AddSpeed(boltSpeed);
〜
}
操作方法を確認しよう
Editメニューの
Project Settings -> Input で割り当てられている。
● Horizontal
● Vertical
● Fire1
移動:WASD、方向キー
ショット:左クリック、左Ctrl
18
スマホ入力に対応
スタンダードアセットの「CrossPlatformInput」を使うと簡単にスマホ入力に対応できる!
(配布プロジェクトでは導入済み)
Assetsメニューの
Import Package -> CrossPlatformInput をインポート。
インポートされたStandard Assetsの、
MobileSingleStickControlプレハブをHierarchyに
ドラッグ&ドロップするだけでOK!
19
スマホ入力に対応
Fileメニューの、 Build SettingsのPlatformをAndroidやiOSにすると、バーチャルパッド
がGameシーンに表示されるようになります。※サイズ等は要調整。
20
スマホ入力に対応
Assets -> _Complete-Game -> Scripts -> Done_PlayerController.cs
21
#if UNITY_EDITOR
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
#elif UNITY_ANDROID || UNITY_IOS
float moveHorizontal = CrossPlatformInputManager.GetAxisRaw("Horizontal");
float moveVertical = CrossPlatformInputManager.GetAxisRaw("Vertical");
#endif
#if UNITY_EDITOR
if(Input.GetButton("Fire1") && Time.time > nextFire)
〜
#elif UNITY_ANDROID || UNITY_IOS
if(CrossPlatformInputManager.GetButton("Shot") && Time.time > nextFire)
〜
#endif
※Done_GameController.cs のゲームオーバー時の操作も変更しています。(csファイル内のコメント参照)
コイン獲得処理
Assets -> _Complete-Game -> Scripts -> Done_GameController.cs
GameOver()内でGetCoin()を呼んでいる。
GetCoin()
22
// Editorの場合は所持コインを PlayerPrefsから読み込む
int coin = PlayerPrefs.GetInt("Coin", 0);
Debug.Log("所持コイン: " + coin);
// スコア分のコインを獲得し、 PlayerPrefsに保存する
coin += score;
PlayerPrefs.SetInt("Coin", coin);
PlayerPrefs.Save();
Debug.Log("今回のスコア: " + score + " 合計コイン: " + coin);
タイトル画面、UI
自機の強化をタイトル画面で行う。
Lv UPボタンを押すと、
コインを消費して強化Lvが上がります。
23
タイトル画面の動作については
Assets -> HandsOn -> Scripts -> TitleManager.cs
に記述されていますのでご確認ください。
自機を強化する処理
Assets -> _Complete-Game -> Scripts -> Done_PlayerController.cs
Start()
自機の強化レベルを読み込んで、移動スピードや弾のスピードの計算を行っている。
非消費型アイテムは、所持していたら弾の本数を増やしている。
24
playerSpeedLevel = PlayerPrefs.GetInt("PlayerSpeedLevel", 0);
boltSpeedLevel = PlayerPrefs.GetInt("BoltSpeedLevel", 0);
課金アイテムの設計
販売する課金アイテム
● 消費型アイテムとして、ゲーム内通貨の『コイン』を販売する。
● 非消費型アイテムとして、買い切りアイテムの『強化ショット』を販売する。
コインは自機の強化に使用する。複数の価格で、お得感のあるアイテムを用意する。
強化ショットは持っているだけでショットの本数が増える。
25
26
ここからitemstoreで操作します!
itemstore登録とSDKの入手
27
デベロッパーサイトにアプリ登録が必要
課金アイテムを販売するには、デベロッパーサイトで以下のことを行います。
28
● デベロッパーサイトにアプリを登録して、
● 必要な設定を行い、
● 販売する課金アイテムを登録する
Androidではアプリを公開する必要があり、時間がかかる恐れがあるため、先にデベ
ロッパーサイトに登録するアプリを準備します。
そのため、まずはitemstoreのSDKを導入し、アプリのビルドを行います!
そのアプリのマニフェストに com.android.vending.BILLING パーミッションが含まれて
いる場合に、アイテムを登録するページにアクセスできるようになります。
itemstore アカウント登録
https://item-store.net/
メールアドレスとパスワードを入力して「新規登録」ボタンをクリック。
確認メールが届くので、メール記載のURLをクリックして登録完了。
29
SDKダウンロード
画面上部タブの『SDK』から、itemstoreのSDKがダウンロードできます。
UnityのSDKをダウンロードしてください。
(Android / iOS 両方のSDKが同梱されています)
30
※最新バージョンのSDKをご利用ください。
31
ここからUnityで操作します!
itemstore SDKの導入
32
プロジェクトにSDKをインポート
インポート方法
プロジェクトを開いた状態で『appc_plugin_x.x.x.unitypackage』をダブルクリック。
or
Assetsメニューの、
Import Package -> Custom Package で
『appc_plugin_x.x.x.unitypackage』を選択。
33
Androidの場合
インポートされた、Assets -> Plugins -> Android -> AndroidManifest.xml を編集しま
す。
.xmlファイル内を『[パッケージ名]』で検索して、
アプリのパッケージ名で置換します。
34
例:[パッケージ名] → net.itemstore.handson
※PushとRecoverの記述箇所は、機能を使用しない場合は不要です。
アプリのビルド
35
アプリのビルド・実機インストールに必要なもの
Android
● Android SDK等
iOS
● Xcode
36
※今回のハンズオンでは、実機へのインストールで必要な環境を事前に準備していただいております。
※各環境の設定につきましては、 Unity公式のユーザーマニュアルやその他記事をご参考ください。
プロジェクトをビルドしよう
Fileメニューの、Build Settings を開き、
Platformに Android か iOS を選択する。
Switch Platform を押してプラットフォームを切り替える。
37
Player Settings を押して、Other Settings内にある
Package Name / Bundle Identifier の項目に
パッケージ名 / Bundle ID を設定します。
Androidの場合
Signed Build した APK を Google Play Console にアップロードするた
め、Keystore を設定します。
38
Keystore を作成していなければ、 Publishing Settings の Keystore で
「Create a new keystore」にチェックを入れ、「 Browse Keystore」で保存
場所を決めます。
「Keystore password」と「Confirm keystore password」にパスワードを入
力します。
「Alias」では「Create a new key」を選び、「Key Creation」で年数や国コー
ドを入力します。
作成後、パスワードを入力します。
ビルド・実機へのインストール
Android
Build And Run を押すとビルドが開始され、
端末にアプリがインストールされます。
39
iOS
Build を押すとXcodeプロジェクトが出力されるので Xcodeで開き、
端末にインストールします。
※各環境のビルドに必要な設定の詳細につきましては、
 Unity公式のユーザーマニュアルやその他記事をご参考ください。
40
ここからデベロッパーサイトで操作します!
デベロッパーサイトでの設定
41
アプリをデベロッパーサイトに登録しましょう
<Androidの場合>
itemstore の SDK を導入し、Signed Build したAPKを Google Play Console にアップ
ロードします。
42
<iOSの場合>
Apple Developer で Provisioning Profile を作成します。
https://play.google.com/apps/publish/
https://developer.apple.com/account/ios/certificate/
<Androidの場合>
Google Play Console
43
44
Google Play Consoleにアプリを作成
『アプリの作成』をクリックします。
任意にタイトルを入力して『作成』をクリックします。
45
ストアの掲載情報を入力(1)
ストアの掲載情報ページにて、「タイトル」「簡単な説明」
「詳しい説明」を入力します。
「スクリーンショット」2枚と、「高解像度アイコン」「ヘッダー画像」
を登録します。
46
ストアの掲載情報を入力(2)
分類の「アプリのタイプ」「カテゴリ」、連絡先情報の「メール」、「プライバシーポリシー」を
それぞれ入力します。
※「コンテンツのレーティング」は、APKをアップロードすることで設定できるようになりま
す。
『未公開版を保存』をクリックして設定した内容を保存します。
47
アルファ(ベータ)版アプリを登録
アプリのリリースページで「アルファ版の管理」をクリックします。(ベータ版でも構いませ
ん。以降アルファ版で記載しておりますが、内容は同じです)
続いて「リリースを作成」をクリックし、APKをアップロードします。
アップロード後、画面右下の「確認」をクリックして保存してください。
48
コンテンツのレーティング
コンテンツのレーティングページでレーティングを設定します。
「メールアドレス」を入力し、「アプリのカテゴリを選択」を選びます。
アンケートでは「ユーザーはゲームを通じてデジタル商品を購入できますか?」に対して
「はい」を選択し、それ以外は「いいえ」を選択します。
※ご自分のアプリでは適切なレーティング、アンケートを入力してください。
アンケートを保存後にレーティングを算定、適用してください。
49
価格と販売 / 配布地域
価格と販売 / 配布地域ページにて、以下の設定を行います。
● アプリの価格の設定  → 無料
● 国 → 日本を使用可能
● 主な対象が子供かどうかの確認  → いいえ
● 広告を含む → いいえ、広告は表示されません
● コンテンツ ガイドライン → チェックを入れる
● 米国輸出法 → チェックを入れる
※ご自分のアプリでは適切な設定を行ってください。
『未公開版を保存』をクリックして設定した内容を保存します。
50
アルファ版を公開
アプリの公開には時間がかかる場合があります。そのため、先に公開設定を行っておき
ます。
処理が完了するとアルファ版が公開されます。
※アルファ版、ベータ版は実際のストアには表示されません。
アプリのリリースページにて、設定したアルファ版の『リリースを編集』をクリックします。
そのまま画面右下の『確認』をクリック、『アルファ版として公開を開始』をクリックします。
<iOSの場合>
Apple Developer
51
52
Certificate 作成の下準備(1)
キーチェーンアクセス.app を起動し、キーチェーンアクセス
メニューの 証明書アシスタント -> 認証局に証明書を要求
を選びます。
● ユーザのメールアドレス  → 開発者のメールアドレス
● 通称 → 任意
● CAのメールアドレス → 未入力
● 要求の処理 → ディスクに保存、鍵ペア情報を指定にチェック
53
Certificate 作成の下準備(2)
CertificateSigningRequest.certSigningRequest を任意の場所に作成します。
● 鍵のサイズ → 2048ビット
● アルゴリズム → RSA
を選択し、進めます。
54
Certificate 作成(1)
Apple Developer の Certificates, Identifiers & Profiles 内にて、
Certificatesで 『+』をクリックして Certificate を作成します。
Development(開発用)の「iOS App Development」を選択
します。
55
Certificate 作成(2)
先程作成した CertificateSigningRequest.certSigningRequest を指定し、アップロード
します。
証明書が作成されますので、ダウンロードし、ダブルクリックしてキーチェーンアクセスに
登録しておきます。
56
App IDs を登録
Apple Developer の Certificates, Identifiers & Profiles 内にて、
Identifiers の App IDs で 『+』をクリックして App ID を登録します。
「App ID Description」と「App ID Prefix」を任意
に入力し、「Bundle ID」にプロジェクトで設定した
IDを入力します。
57
Provisioning Profile を作成(1)
Apple Developer の Certificates, Identifiers & Profiles 内にて、
Provisioning Profiles で 『+』をクリックして Provisioning Profile を作成します。
Development(開発用)の「iOS App Development」を選択し
ます。
58
Provisioning Profile を作成(2)
作成した App ID を選択します。
紐付ける Certificate を選択します。
59
Provisioning Profile を作成(3)
テストに使用する実機端末を選択します。
Provisioning Profile を作成後にダウンロー
ドし、ダブルクリックすることでXcodeに登録
しておきます。
販売する課金アイテムの登録
60
課金アイテムを販売するには
Google Play Console / iTunes Connect で課金アイテムの登録が必要!
● Google Play Consoleでは、「管理対象のアイテム」を登録
61
https://play.google.com/apps/publish/
itemstoreのチュートリアルに課金機能に必要な設定を載せています。
● Android https://item-store.net/tutorial/android/google_play/
● iOS https://item-store.net/tutorial/ios/itunes/
● iTunes Connectでは、「消耗型」「非消耗型」を登録
https://itunesconnect.apple.com
<Androidの場合>
Google Play Console
62
63
課金アイテムの登録(1)
ストアでの表示 -> アプリ内サービス ページにて、『管理対象アイテムを作成』をクリック
します。
64
課金アイテムの登録(2)
「アイテム ID」「タイトル」「説明」を設定し、「ステータ
ス」を『有効』にします。
この「アイテム ID」は、後ほどitemstoreでの設定を行
う際に使用します。
65
課金アイテムの登録(3)
『価格を追加』をクリックし、「デフォルトの価格」に販売
金額を設定します。
設定後、画面右下の『保存』をクリックします。
66
課金アイテムの登録(4)
設定例
● handson.coin300 100円
● handson.coin1000 300円
● handson.shot_ex 300円
<iOSの場合>
iTunes Connect
67
68
アプリの登録
マイ App にて、画面左上の『+』をクリックし、「新規
App」を登録します。
● プラットフォーム → iOS
● 名前 → 任意
● プライマリ言語 → 日本語
● バンドルID → Apple Developerで作成したID
● SDU → 任意
69
課金アイテムの登録(1)
登録したアプリで、画面上部タブから『機能』ページを開き、「App 内課金」の『+』をク
リックします。
70
課金アイテムの登録(2)
iOSでは、販売する課金アイテムの種類を選択して作成します。
● 一度使用すると消費されるアイテム(例:
コイン等のゲーム内通貨)
→ 消耗型
● 使用しても消費されないアイテム(例:広
告非表示)
→ 非消耗型
71
課金アイテムの登録(3)
「参照名」「製品ID」「価格」、ローカリゼー
ションの「表示名」「説明」をそれぞれ設定
し、「配信可能」にチェックを入れて保存し
ます。
この「製品ID」は、後ほどitemstoreでの
設定を行う際に使用します。
72
課金アイテムの登録(4)
設定例
● handson.coin300 120円(価格帯1)
● handson.coin1000 360円(価格帯3)
● handson.shot_ex 360円(価格帯3)
73
ここからitemstoreで操作します!
itemstoreを使って
アプリ内課金を実装する
74
ストア新規登録
itemstore管理画面にログインし、『新しいストアを追加』ボタンをクリックしてストアを作成
します。
75
● トライアルストアを選択。
● ストア名に「ハンズオンアプリ」等任意に入力。後で変更できます。
● AndroidかiOSを選択して、『追加する』ボタンをクリック。
ストア設定
<パッケージ名 / Bundle ID>
プロジェクトに設定しているものと一致させてください。
76
<メディアキー>
ストア毎、OS毎に発行されます。
SDKを実装する際に使用します!
itemstore管理画面のストア設定にて、アプリの基本設定を行います。
OS毎の設定項目
<Androidの場合>
Google Play Consoleの、開発ツール -> サービスと API ページ内にある「このアプリのライセンス キー」をコ
ピーし、itemstore管理画面 -> ストア設定の「ライセンスキー」にペーストしてください。
77
<iOSの場合>
「Apple ID」を任意に設定してください。
※ご自分のアプリをリリース後は、 iTunes Connect で発行される番号を設定してください。
アイテム管理
itemstore管理画面のアイテム管理にて、販売する課金アイテムを登録します。
itemstoreでは、課金アイテムを”グループ”で管理しています。
例:
「コイン100枚」「コイン300枚」といった
課金アイテムを『コイン』というグループで管理。
78
アイテムグループの追加
消費タイプ
● 消費型:使用すると消費するアイテム(例:コイン等のゲーム内通貨、一度使う
となくなるチケット等)
● 非消費型:買い切りタイプ(例:追加ステージ、最大数増加等)
79
グループID
スクリプトからアイテム所持数の取得や増減を行う場合はこのIDを指定します。
アイテムの追加
アイテムID
Google Play Console / iTunes Connect で登録した「アイテム ID」/ 「製品ID」と紐付け
て作成します。
80
ストアデザイン
itemstore管理画面のストアデザインにて、アプリで表示するストアのデザインタイプやカ
ラー、ストアタイトルを管理画面で変更可能!
変更内容はアプリに即時反映されます!
81
82
ここからUnityで操作します!
AppCプレハブを配置する
インポートしたSDK内のAppCプレハブを置いたシーンが読み込まれると、SDKの初期
化が行われます。
教材プロジェクトでは、InitシーンにAppCプレハブを配置してSDKの初期化待ちをしま
す。
83
● Assets -> HandsOn -> Scenes -> Initシーンを開いて、インポートされた Assets -> Plugins にあ
るAppCプレハブをHierarchyにドラッグ&ドロップ。
● 設置したAppCオブジェクトの Inspector にて、【Media Key】に、itemstore管理画面のストア設定か
らメディアキーをコピーしてペースト。
● 【On API】の、Item Store APIにチェックを入れる。
● 【Send CallBack Target】に、HierarchyにあるCallbackTargetオブジェクトを設定する。
Initシーンでやっていること
AppCオブジェクトを置いたシーンが読み込まれると、itemstore SDKの初期化が実行さ
れます。
※On APIでチェックした機能が利用可能になります。
84
【Send CallBack Target】に設定したオブジェクトに初期化結果を渡し、初期化成功後の
処理を行っています。
Assets -> HandsOn -> Scripts -> InitManager.cs では、
● Unity Editorで再生している場合はそのまま Titleシーンへのシーン遷移が呼ばれます。
● Android / iOS で実行している場合は AppCオブジェクトを破棄しないように DontDestroyOnLoadに
指定しています。
itemstore SDKの初期化を受け取る
Assets -> HandsOn -> Scripts -> CallbackTarget.cs では、itemstore SDKの初期化結果を受け取るように
コールバックメソッドを記述します。
85
// itemstore 初期化コールバック
public void FinishedSetupAppC(bool b)
{
Debug.Log("初期化結果: " + (b ? "成功" : "失敗"));
if (b)
{
// 初期化が成功したことを知らせる
GameObject.Find("InitManager").GetComponent<InitManager>().FinishedInit();
}
}
初期化が成功したら InitManager.csのメソッドを実行することでタイトルシーンに遷移しています。
アイテム所持数の取得
アイテム管理で登録したグループIDを指定して、そのアイテムの所持数を取得すること
ができます。
86
<アイテム所持数を取得する>
AppC.ItemStore.GetItemCount("グループID");
コインの所持数を取得する
Assets -> HandsOn -> Scripts -> TitleManager.cs -> Start()
87
// 所持コインを表示する
#if UNITY_EDITOR
coinText.text = "Coin : " + coin;
#elif UNITY_ANDROID || UNITY_IOS
coinText.text = "Coin : " + AppC.ItemStore.GetItemCount("coin");
#endif
#if UNITY_EDITOR
// Editorの場合は所持コインを PlayerPrefsから読み込む
coin = PlayerPrefs.GetInt("Coin", 0);
Debug.Log("coin: " + coin);
#elif UNITY_ANDROID || UNITY_IOS
// 所持コインをitemstoreで管理
Debug.Log("coin: " + AppC.ItemStore.GetItemCount("coin"));
#endif
Assets -> HandsOn -> Scripts -> TitleManager.cs -> RefreshTexts()
アイテム所持数の増減
アイテム管理で登録したグループIDを指定して、そのアイテムの所持数を増減させるこ
とができます。
88
<所持数を増やす場合は正の値をセット>
AppC.ItemStore.AddItemCount("グループID", 1);
<所持数を減らす場合は負の値をセット>
AppC.ItemStore.AddItemCount("グループID", -1);
自機の移動スピードを強化した際にコインを減らす
Assets -> HandsOn -> Scripts -> TitleManager.cs -> PlayerSpeedLevelUpButton()
89
#if UNITY_EDITOR
if (coin >= playerSpeedNextCoin)
{
〜
}
#elif UNITY_ANDROID || UNITY_IOS
if (AppC.ItemStore.GetItemCount("coin") >= playerSpeedNextCoin)
{
// コインを減らす
AppC.ItemStore.AddItemCount("coin", -playerSpeedNextCoin);
// PlayerSpeedをレベルアップ!
playerSpeedLevel++;
// 表示を更新して、状態を保存する
RefreshTexts();
SavePlayer();
}
#endif
弾のスピードを強化した際にコインを減らす
Assets -> HandsOn -> Scripts -> TitleManager.cs -> BoltSpeedLevelUpButton()
90
#if UNITY_EDITOR
if (coin >= playerSpeedNextCoin)
{
〜
}
#elif UNITY_ANDROID || UNITY_IOS
if (AppC.ItemStore.GetItemCount("coin") >= boltSpeedNextCoin)
{
// コインを減らす
AppC.ItemStore.AddItemCount("coin", -boltSpeedNextCoin);
// BoltSpeedをレベルアップ!
boltSpeedLevel++;
// 表示を更新して、状態を保存する
RefreshTexts();
SavePlayer();
}
#endif
コインの獲得もitemstoreで管理
Assets -> _Complete-Game -> Scripts -> Done_GameController.cs -> GetCoin()
91
// スコアをコインとして保存する
#if UNITY_EDITOR
〜
#elif UNITY_ANDROID || UNITY_IOS
// 所持コインはitemstoreで管理
Debug.Log("所持コイン: " + AppC.ItemStore.GetItemCount("coin"));
// スコア分のコインを獲得し、 itemstoreで管理する
AppC.ItemStore.AddItemCount("coin", score);
Debug.Log("今回のスコア: " + score + " 合計コイン: " + AppC.ItemStore.GetItemCount("coin"));
#endif
ゲームオーバー時にタイトル画面に戻るようにする
Assets -> _Complete-Game -> Scripts -> Done_GameController.cs -> Update()
SceneManager.LoadScene("Title");
強化ショット = 非消費型の所持数を取得した場合
非消費型アイテムの所持数は、このように取得できます。
● 購入済み = 1
● 未購入= 0
92
// 強化ショットの所持確認
#if UNITY_EDITOR
// EditorではDone_PlayerプレハブのInspectorで切り替える
Debug.Log("Editor haveShotEx: " + (haveShotEx ? "true" : "false"));
#elif UNITY_ANDROID || UNITY_IOS
// itemstoreの非消費型アイテムは、購入済み =1 未購入=0 で取得できます
haveShotEx = AppC.ItemStore.GetItemCount("shot_ex") == 1 ? true : false;
#endif
Assets -> _Complete-Game -> Scripts -> Done_PlayerController.cs -> Start()
ショップ画面を呼び出す
アイテムを購入できるショップ画面 = itemstoreビューの呼び出しは1行でOK!
Assets -> HandsOn -> Scripts -> TitleManager.cs -> OpenItemstoreView()
93
// ストア呼び出し
public void OpenItemstoreView()
{
AppC.ItemStore.OpenItemStoreView();
}
ショップ画面を閉じたときに画面を更新したい
アイテム所持数を画面上に表示している場合に、ショップで購入したアイテム数を反映さ
せるにはコールバックを使用します。
94
// ストアを閉じた際のコールバック
public void ClosedItemstoreView()
{
// ストアを閉じたらアイテム所持数を更新したい
GameObject.Find("TitleManager").GetComponent<TitleManager>().RefreshTexts();
}
Assets -> HandsOn -> Scripts -> CallbackTarget.cs に以下のコールバックメソッドを
追加。
教材プロジェクトのストア情報
教材プロジェクトを作成する際に使用したストア情報です。
以下のストア情報をプロジェクト内で設定することで、登録済みアイテムの表示確認がで
きます。
95
パッケージ名 / Bundle ID
net.itemstore.handson
メディアキー
- Android
143bc403f9da42c26a08ab3475e769e906578650
- iOS
b1ca22a0495879aa14926cbf1e87823510ac041a
教材プロジェクトのアイテム情報
教材プロジェクトを作成する際に使用したアイテム情報です。
以下のアイテム情報を管理画面で設定しますと、登録済みアイテムの表示確認ができ
ます。
96
消費型
グループID:coin
アイテムID:handson.coin300、handson.coin1000
非消費型
グループID:shot_ex
アイテムID:handson.shot_ex
まずはEditor上で動作を確認しよう!
Fileメニューの、 Build Settings -> Scenes In Build
InitシーンとTitleシーンを追加。
最初に呼ばれるシーン → 0番
Initシーンで再生してみましょう!
97
Unity Editor上での動作
Editor上で以下のように動作します。
● Initシーンで起動し、Titleシーンに遷移する
● PUSH STARTを押すとゲームが開始できる
● ゲームオーバー時にタイトルに戻ることができる
● 獲得したスコア分のコインがタイトル画面で増えている
● 強化に必要なコインを使用して自機を強化できる
98
● SHOPを押しても課金画面は開かない
itemstoreの機能は実機で確認する必要があります。
99
ここからデベロッパーサイトで操作します!
テスター登録
100
テスト購入をするには
Android
● Google Play Console でテスターアカウントの登録・設定が必要。
● テストする端末に、テスターのGoogleアカウントでログインする。
iOS
● iTunes Connect でテスターアカウントの登録・設定が必要。
● テストする端末に、テスターのApple IDでサインインする。
101
https://play.google.com/apps/publish/
https://itunesconnect.apple.com
テスター登録用のメールアドレスを準備
開発者アカウントとして登録しているメールアドレスは使用できません。
別途メールアドレスを用意します。
102
● Android で課金テストを行う場合は Gmailを使用しますので新規アドレスの取得を推奨。
● iOSだけであれば、使い捨てメールアドレスを利用することもできます。
例:http://sute.jp/  等
用意したメールアドレスをご自分の端末で利用可能にしてください。
<Androidの場合>
Google Play Console
103
104
テスターアカウントの登録
Google Play Console のトップ(すべてのアプリ等)で「設
定」をクリックして「アカウントの詳細」ページを開きます。
「テスト用のアクセス権がある Gmail
アカウント」にテスター用のGmailアド
レスを登録します。
※複数ある場合はカンマ区切り。
登録後、保存してください。
105
テスターの管理(1)
リリース管理のアプリのリリースを開き、『アルファ版を管理』をクリックします。
106
テスターの管理(2)
テスト方法の選択にて、「クローズド アルファ版テス
ト」を選択。
『リストを作成』をクリックし、「リスト名」を任意に入
力、「テスターのメールアドレス」にテスターアカウン
トとして用意したメールアドレスを入力します。
入力後、保存してください。
107
テスターの管理(3)
作成したリストの「有効」にチェックを入れ、保存します。
「オプトインURL」に記載されているURLをコピーしてください。
108
テスターの管理(4)
コピーした「オプトインURL」に、テスターアカウントを登録した端末でアクセスします。
『テスターになる』をクリックするとテスターの準備が完了します。
<iOSの場合>
iTunes Connect
109
110
テスターの管理(1)
ユーザと役割のSandboxテスターを開き、テスターの『+』をクリックします。
111
テスターの管理(2)
「メールアドレス」にテスターアカウント
として用意したメールアドレスを入力し
ます。
その他各項目を任意に入力し、保存
するとテスターの準備が完了します。
実機でテスト購入
112
実機で動かしてみる
アプリをビルドして実機にインストールし、起動してみましょう。
113
初期化が成功するとタイトル画面に遷移し、ゲームが
遊べるようになります。
アイテムをテスト購入してみよう
タイトル画面でSHOPを押してみましょう!
114
購入後、ショップ画面を閉じるとコインの所持数が更新されま
す。
端末にテスターアカウントを登録しているとテスト購入ができま
す。
並んでいるアイテムを押すと購入ダイアログが表示されるの
で、テスターアカウントのパスワードを入力してアイテムを購入
してみましょう。
itemstoreの機能
115
ユーザー管理
● ユーザーのアイテム所持数や購入履歴が閲覧できます。
● 編集、およびCSVエクスポートはプレミアムの機能です。
● お問合せキー検索が可能です。
116
プッシュ通知
● プレミアムの機能です。
● アイテム購入者、未購入者やアプリ起動日等の配信条件を指定してプッシュ
通知が配信可能です。
● ユーザー管理で出力したCSVを使用して配信対象に設定できます。
117
データストア
● アプリ内のデータをサーバー保存可能です。
● データ引き継ぎ機能とセットで使うことで、アプリ内データの引っ越しができま
す。
118
データ引き継ぎ
● アプリ内のユーザー情報を別の端末に引き継ぐことができます。
● アイテムの他、データストアに保存したデータも引き継がれます。
119
ストアアナリティクス
● ご利用ストアのアナリティクスデータが閲覧できます。
● プレミアムではCSVダウンロードが可能です。
120
チュートリアル
https://item-store.net/tutorial/
● 【STEP1】 デベロッパーサイトでの設定
● 【STEP2】 ストアの設定
● 【STEP3】 実装
実装までの流れに沿った構成になっています!
121
サポート
● お客様サポート(β)
● コンタクト
お問合せは itemstore サポートチームまで
support@item-store.net
122
123

More Related Content

PDF
Android4.2徹底解剖!
PDF
.NET Gadgeteer のハンズオン資料 (2014年3月版)
PPTX
xRLT vol.01 資料「HoloLensでも3Dアニメーションを再生する 」
PDF
HoloLensハンズオン(セットアップ)
PDF
HoloLens概要 仙台IT文化祭
PDF
Android Lecture #01 @PRO&BSC Inc.
PPTX
HoloLens 開発環境構築
PDF
Android UIデザイン入門
Android4.2徹底解剖!
.NET Gadgeteer のハンズオン資料 (2014年3月版)
xRLT vol.01 資料「HoloLensでも3Dアニメーションを再生する 」
HoloLensハンズオン(セットアップ)
HoloLens概要 仙台IT文化祭
Android Lecture #01 @PRO&BSC Inc.
HoloLens 開発環境構築
Android UIデザイン入門

What's hot (11)

PPTX
ゲームエンジンの文法【UE4 練習 】No.005 Gameplay Frameworkの理解
PPTX
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
PDF
インディーゲーム開発の現状と未来 2021
PPTX
ABC2012Spring 20120324
PDF
明示的アニメで、Flutterアニメーション入門
PPTX
はじめようMixed Reality Immersive編
PPTX
ゲームエンジンの文法【UE4】No.002 Ue4 Epic Games Launcherについて
PDF
MRTK-Unreal(UX Tools) を利用した HoloLens 2 アプリ開発 | UNREAL FEST EXTREME 2020 WINTER
PDF
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
PDF
unityゲーム開発基礎講座
PDF
JUCEハンズオン@Ableton and Max Community Japan #009
ゲームエンジンの文法【UE4 練習 】No.005 Gameplay Frameworkの理解
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
インディーゲーム開発の現状と未来 2021
ABC2012Spring 20120324
明示的アニメで、Flutterアニメーション入門
はじめようMixed Reality Immersive編
ゲームエンジンの文法【UE4】No.002 Ue4 Epic Games Launcherについて
MRTK-Unreal(UX Tools) を利用した HoloLens 2 アプリ開発 | UNREAL FEST EXTREME 2020 WINTER
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
unityゲーム開発基礎講座
JUCEハンズオン@Ableton and Max Community Japan #009
Ad

Similar to Unity課金ゲームアプリ開発ハンズオン! (20)

PDF
【バレンタイン特別企画】メイドさんと学ぶ課金ゲームアプリ開発ハンズオン!
PDF
Appc schoo 0219
PDF
Unity5.3をさわってみた
PDF
Unity In App Purchase (IAP)の使い方
PDF
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
PDF
Unity Introduction from 2D shooting game.
PPTX
Unity * スマートフォン開発で学んだこと
PDF
Unity開発アプリに広告実装するよー!
PDF
20121123 アド部定例会 unityアプリに広告を入れる方法
PPTX
Unityハンズオン〜3Dの世界を歩こう〜
PDF
Unity 5.3 の In-App Purchase を試してみた
PDF
【ABC2015 Summer】Unityでアプリ内課金ゲームづくりを体験しよう
PDF
Unity に於けるモバイルプラットフォーム向けビルド自動化のおはなし
PDF
Unity appC cloudを使ってゲームアプリに課金機能を入れよう。
PDF
Unityでスマートフォン向けゲームを開発する
PDF
【Unite Tokyo 2018】非プログラマでもできる!簡単プロジェクト管理&マネタイゼーション術!
PDF
Unity入門 初心者でもできるスマホアプリ課金ゲーム作り
PDF
【改訂版】Unity入門 初心者でもできるスマホアプリ課金ゲーム作り
PDF
UnityのフリーライセンスでPC-Android通信を実装するまで
PDF
Let’s study unity
【バレンタイン特別企画】メイドさんと学ぶ課金ゲームアプリ開発ハンズオン!
Appc schoo 0219
Unity5.3をさわってみた
Unity In App Purchase (IAP)の使い方
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity Introduction from 2D shooting game.
Unity * スマートフォン開発で学んだこと
Unity開発アプリに広告実装するよー!
20121123 アド部定例会 unityアプリに広告を入れる方法
Unityハンズオン〜3Dの世界を歩こう〜
Unity 5.3 の In-App Purchase を試してみた
【ABC2015 Summer】Unityでアプリ内課金ゲームづくりを体験しよう
Unity に於けるモバイルプラットフォーム向けビルド自動化のおはなし
Unity appC cloudを使ってゲームアプリに課金機能を入れよう。
Unityでスマートフォン向けゲームを開発する
【Unite Tokyo 2018】非プログラマでもできる!簡単プロジェクト管理&マネタイゼーション術!
Unity入門 初心者でもできるスマホアプリ課金ゲーム作り
【改訂版】Unity入門 初心者でもできるスマホアプリ課金ゲーム作り
UnityのフリーライセンスでPC-Android通信を実装するまで
Let’s study unity
Ad

Unity課金ゲームアプリ開発ハンズオン!