ゲームにバーチャルショップを追加する方法 パート1
プレイヤーがあなたのゲームをクリアしたり、ゲームに飽き始めている場合、アンロック可能なアイテムやキャラクターのためのショップを作ることは、リプレイ価値と保持率を高める素晴らしい方法です。
このチュートリアルでは、ユーザーがゲーム内で生成したポイントを使用してアイテムを「購入」するアプリ内ショップの作り方を解説します!
この例では、私たちのゲームは非常にシンプルです… プレイヤーをクリックし続けてポイントを増やしましょう! もし1クリックあたりのポイントをもっと得たければ、「プレイヤー」をアップグレードしてください。
まず始めに、全シーンで共有されるお金を設定します。
お金の追加
最初にやることは、グローバルUIに移動し、お金を表すラベルを追加して、そのテキストを0に設定します。また、そのラベルが何であるかを示す別のラベルも追加します。
お金のラベルを少し画面外に移動して、ゲームプレイ中には表示されないようにしましょう。
次に、お金を保存してロードする仕組みを扱います。これにより、プレイヤーがあなたのゲームを離れるたびに、彼らが得たお金がそのまま残るようにします!
お金の保存
お金のラベルの挙動に移動します。
まずはお金を更新する処理を行います。
挙動バンドル、ラベル取得、値の保存、およびメッセージのブロードキャストの挙動が必要です。
挙動を上の画像のように配置し、挙動バンドルをOFFに設定します。
ここでは多くのことがありました。すべてが何を意味するのか見ていきましょう。
何かが挙動バンドルを実行するとき、私たちはラベルを取得して、現在のお金の値を取得したいです。他のオブジェクトの中でボックスコンテナの値を取得できない理由は、(今後のアップデートでの実装を期待しましょう)。
次に、その取得したラベルの値をファイルに保存したいです。それを実現するために、取得したラベルの出力を、保存したい値の入力フィールドにドラッグしてドロップします。
メッセージのブロードキャストの挙動は、お金が更新されたことを他のオブジェクトに通知します。これを利用して、シーン内の新しいお金の値でラベルを更新できます。
お金の読み込み
お金の保存ができたので、プレイヤーがあなたのアプリを開いたときにプレイヤーが得たお金を読み込むようにします!
お金のラベルの中で、挙動バンドル、値の読み込み、もう一つの挙動バンドル、挙動を追加します。それらを以下の画像のように配置します。
次に、もしの挙動、別のもしの挙動を追加して、それを最初のもしの側にドラッグして、エルスイフとし、ラベルを変更し、挙動をONにします。以前のブロードキャストメッセージをオンにします。
これらの挙動を以下の画像のように配置します:

さて… ここで多くのことが起こっていますので、私たちが構築したものを見てみましょう!
おそらくあなたは、挙動バンドルの目的について考えているでしょう。挙動バンドルには二つの目的があります… 第一に、挙動を整理し、第二に、挙動がイベントのように左から右へと実行されるように順序を強制します。
ですので、私たちは読み込み値の挙動を挙動バンドルに接続します。これにより、シーンが始まるときに、保存された値がファイルから読み込まれます。読み込み値のプロパティでは、以前に作成した保存値の挙動を選択してください。
次の挙動バンドルは、値が読み込まれたかどうかを確認します。もしの挙動は、値が空でない場合はラベルを変更します。これを行うには、最初の入力フィールドを読み込み値の挙動からの出力にし、2番目の入力フィールドを空白のままにします。
もしの挙動は、その後、ラベル変更に接続し、読み込み値が実際に値を読み込んだ場合にのみ実行されます。
Else の挙動は何もチェックする必要はありません。常に真であり、子の挙動ONを実行します。挙動ONは、プレイヤーが持っているデフォルトの金額を保存するために、以前に作成した保存挙動バンドルを実行するだけです。
お金の使い方!
保存とロードのお金ができたので、次はお金を使う方法を作ります! それを行うために、ラベルから集約された取引システムを構築します。
まず、メインキャンバスに3つのラベルをドラッグします。最初は現在の取引額を表し、2つ目はステータスを表し、3つ目は「お金が足りない!」または「購入済み!」のようなメッセージを表します。また、私たちの表現をラベル付けして、それが何であるかを知りましょう。すべてを少し画面外に移動させ、プレイヤーがゲームをプレイしているときに見えないようにしましょう。
さらに、取引ロジックを処理するオブジェクトをキャンバスにドラッグします。この例では、「取引ロジック」と書かれたラベルを使います。
取引ロジックラベルの挙動に移動して、購入処理のロジックを作成します。
プレイヤーが取引を完了するのに十分なお金があるかを確認する必要があります。これを行うためには、挙動バンドルと2つのラベル取得の挙動をドラッグして、以下の画像のようにつなげます。シーンがロードされたときに取引が早まらないように、挙動バンドルをオフに設定してください。
最初のラベル取得はお金ラベルを取得し、2つ目は取引額を取得します。お金が取引額よりも少ないかを確認したいです。それが少なければ、取引ステータスを「失敗」に、メッセージを「お金が足りません!」に変更します。
これを行うために、もしの挙動を追加し、2つのラベル変更を追加します。挙動を以下の画像のように配置します。
もしの挙動は、お金ラベルが取引額よりも少ないかを確認します。
次は逆を確認します。ユーザーが十分なお金を持っている場合、取引額をお金から差し引いて、お金を保存します。そのためには、先ほどのようにエルスイフの活用、挙動バンドルを接続し、値の差し引き挙動、ラベル変更挙動、挙動ONを作成します。
値の差し引き挙動は、取引額をお金から引きます。
その後、ラベル変更を使用して、お金ラベルを差し引き値の出力に変更します。
挙動ON挙動は、その後、以前に作成した保存挙動バンドルを実行します。
次に、取引が成功したかどうかを知って、トランザクションを実行するアクションが成功したかどうかを把握するために成功ステータスを作成します!
それを行うために、単に2つのラベル変更挙動をドラッグします。
ステータスラベルを「成功」に、取引メッセージを「購入済み!」と言う内容に設定します。
これでお金を使う方法ができました。取引額を変更ラベル挙動で設定することで、私たちの取引ロジックを実行するための挙動ONを使用すれば、成功したかどうかはステータスラベルを確認することで確認できます。
お金を稼ぐ!
プレイヤーにお金を使わせましたが、どうやってお金を使わせるの? プレイヤーがお金を稼げる方法を提供する必要があります。まだ購入ロジックの中で、購入ロジックを処理するための別の挙動バンドルを追加し、オフに設定してください。シーンが開始されたときに不正に何かを購入することを避けるためです。
最初にお金と取引額を取得します。したがって、以下のように2つのラベル取得挙動を追加します。
次に、お金を取引額に追加します。追加値挙動、ラベル変更挙動、挙動ONを追加します。
変更ラベル挙動は、追加値挙動の出力になり、お金の値を変更します。挙動ONは、前のセクションで行ったように新しいお金の値を保存します。
最後に、取引ステータスとメッセージを作成します。2つのラベル変更挙動を追加して、ステータスを「成功」とし、メッセージを「販売済み!」のようなものに設定します。
これで、プレイヤーがお金を稼ぐ機能を持ちました。取引額を変更し、挙動ONを使用してお金を加算するために我々の稼ぎの挙動バンドルを実行すれば良いのです。
今後の進め方
ここまでで、プレイヤーがお金を持ち、それを使って購入できる取引システムを作成しました。この取引システムは、プレイヤーがもうお金を稼ぐことを許可しています。また、取引システムは、お金を保存する機能も備えているため、プレイヤーはアプリを離れることができ、戻ってきたときに同じ金額を持っています。
次のチュートリアルでは、プレイヤーのアイテムを購入する方法と、彼らのアイテムが保存されることを確認します。

