Menu
CoddyTech

復習:ショップで購入する

CoddyのUnityジャーニー「Unityのゲームアーキテクチャ」セクションの一部。レッスン 29/64。

この章では、多くのオブジェクトが共有するアセットにデータを移しました。ショップの商品もそのようなアセットなので、プレイヤーが購入するものは、商品ではなくショップに属します。

challenge icon

チャレンジ

簡単

Spaceキーで選択したアイテムを購入できるようにし、アセットには変更を加えないでください。

  1. Shopで購入したアイテムをList<ItemData> ownedに保持します。
  2. Spaceキーを押したとき、所持済みのアイテムはAlready owned: Iron Swordとログに出力します。goldより高価なアイテムの場合はNot enough gold for Iron Swordとログに出力します。
  3. それ以外の場合は、goldから価格を差し引き、そのアイテムをownedに追加し、Bought Iron Swordとログに出力して、テキストを更新します。

「プレイ」を押してLong Bowを購入します。その後、「確認」を押します。

自分で試してみよう

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;

public class Shop : MonoBehaviour
{
    public ItemDatabase database;
    public TMP_Text itemText;
    public TMP_Text goldText;
    public int gold = 50;
    private int index;

    void Start()
    {
        Show();
    }

    void Update()
    {
        if (Keyboard.current.rightArrowKey.wasPressedThisFrame)
        {
            index = (index + 1) % database.items.Count;
            Show();
        }
        if (Keyboard.current.leftArrowKey.wasPressedThisFrame)
        {
            index = (index - 1 + database.items.Count) % database.items.Count;
            Show();
        }
        // Space: 選択中のアイテムを購入する
    }

    void Show()
    {
        ItemData item = database.items[index];
        itemText.text = item.itemName + ": " + item.price + " gold";
        goldText.text = "Gold: " + gold;
    }
}
quiz icon腕試し

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

Unityのゲームアーキテクチャのすべてのレッスン

自分で練習してみよう: Unityプレイグラウンド