Menu
CoddyTech

상점과 인벤토리

Coddy Unity 여정의 실제 게임 만들기 섹션에 포함된 레슨. 56개 중 54번째.

레벨 사이에 영웅은 상점을 방문합니다. 진열대에는 헬멧, 부츠, 망토 세 가지 아이템이 놓여 있고, 각 아이템의 가격이 표시된 버튼이 있습니다. 아직 살 여유가 없는 아이템을 살 수 있도록 일하기 버튼을 눌러 코인을 얻을 수 있습니다. 영웅이 구매한 아이템은 아래에 표시된 인벤토리에 들어가고, 남은 코인과 보유한 아이템은 다음에 게임을 시작할 때도 그대로 유지됩니다.

스크립트 두 개를 작성하세요. 상점 오브젝트에는 Shop을, 각 아이템 버튼에는 ShopItem을 추가합니다.

challenge icon

챌린지

어려움

Inspector에서는 Shop에 startCoins(100), pay(25), coinsText, inventoryText, workButton, 그리고 선반 순서대로 세 개의 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실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

실제 게임 만들기의 모든 레슨