Menu
CoddyTech

ショップとインベントリ

CoddyのUnityジャーニー「本格的なゲームを作る」セクションの一部。レッスン 54/56。

レベルの合間に、ヒーローはショップを訪れます。棚にはヘルメット、ブーツ、マントの3つのアイテムが並び、それぞれのボタンに価格が表示されています。また、まだ買えないアイテムのためにコインを稼げる「仕事」ボタンもあります。ヒーローが購入したものは下部に表示されるインベントリに追加され、残ったコインと所持アイテムは、次にゲームを起動したときにもそのまま残ります。

スクリプトを2つ作成します。ShopオブジェクトにShopを、各アイテムのボタンにShopItemを設定します。

challenge icon

チャレンジ

難しい

Inspector で Shop に startCoins(100)、pay(25)、coinsText、inventoryText、workButton、および棚の順に並んだ3つの ShopItem を items に設定します。各 ShopItem には、itemName と price(Helmet 40、Boots 60、Cape 120)、label(ボタン上のテキスト)、および shop を設定します。

  • コインはキー Coins の下に保存されます。保存データがないプレイヤーは startCoins から始めます。coinsText には Coins: 100 のように表示されます。
  • Work をクリックするたびに pay コインを獲得します。
  • キー Owned_ にアイテム名を続けたキー(Owned_Helmet)の値が1の場合、そのアイテムを所有しています。販売中はラベルに Helmet: 40 と表示され、所有すると Helmet: owned と表示されます。
  • アイテムのボタンをクリックできるのは、そのアイテムをまだ所有しておらず、プレイヤーが価格以上のコインを持っている場合だけです。クリックするとアイテムを購入し、コインから価格が差し引かれて、そのアイテムを所有します。
  • inventoryText には、棚の順に所有アイテムが Inventory: Helmet, Cape のように表示されます。所有アイテムがない場合は Inventory: empty と表示されます。
  • 変更はすべてすぐに保存され、各テキストとボタンに新しい状態が表示されます。

Play を押して、買い物と仕事をし、Stop を押してから再び Play を押し、最後に Check を押します。

自分で試してみよう

using UnityEngine;
using UnityEngine.UI;
using TMPro;

public class Shop : MonoBehaviour
{
    public int startCoins = 100;
    public int pay = 25;
    public TMP_Text coinsText;
    public TMP_Text inventoryText;
    public Button workButton;
    public ShopItem[] items;
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

本格的なゲームを作るのすべてのレッスン