복습: 상점에서 구매하기
Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 64개 중 29번째.
이 장에서는 여러 객체가 공유하는 에셋으로 데이터를 옮겼습니다. 상점의 아이템도 그런 에셋이므로, 플레이어가 구매한 것은 아이템이 아니라 Shop에 속합니다.
챌린지
쉬움Space 키를 눌러 선택한 아이템을 구매하고, 에셋은 그대로 두세요.
- Shop에서 구매한 아이템을
List<ItemData> owned에 보관하세요. - Space 키를 눌렀을 때 이미 보유한 아이템은
Already owned: Iron Sword를 로그에 출력하고,gold보다 가격이 비싼 아이템은Not enough gold for Iron Sword를 로그에 출력하세요. - 그렇지 않으면
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;
}
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
Unity 게임 아키텍처의 모든 레슨
직접 연습해 보세요: Unity 플레이그라운드