Menu
CoddyTech

복습: 상점에서 구매하기

Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 64개 중 29번째.

이 장에서는 여러 객체가 공유하는 에셋으로 데이터를 옮겼습니다. 상점의 아이템도 그런 에셋이므로, 플레이어가 구매한 것은 아이템이 아니라 Shop에 속합니다.

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 플레이그라운드