상점과 인벤토리
Coddy Unity 여정의 실제 게임 만들기 섹션에 포함된 레슨. 56개 중 54번째.
레벨 사이에 영웅은 상점을 방문합니다. 진열대에는 헬멧, 부츠, 망토 세 가지 아이템이 놓여 있고, 각 아이템의 가격이 표시된 버튼이 있습니다. 아직 살 여유가 없는 아이템을 살 수 있도록 일하기 버튼을 눌러 코인을 얻을 수 있습니다. 영웅이 구매한 아이템은 아래에 표시된 인벤토리에 들어가고, 남은 코인과 보유한 아이템은 다음에 게임을 시작할 때도 그대로 유지됩니다.
스크립트 두 개를 작성하세요. 상점 오브젝트에는 Shop을, 각 아이템 버튼에는 ShopItem을 추가합니다.
챌린지
어려움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;
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.