Advertisement
Advertisement

More Related Content

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

Advertisement

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

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