Unity 내배캠 TIL
C# 기초 문법 - 팀 프로젝트(3주차 4일)
오늘도즐겨
2024. 10. 6. 03:32
🔥10/2 수요일 목표 🔥
Item & Inventory UI 출력 구현하기📝
🤯 Problem 🤯
Player의 Inventory에서 Item이 있다면 "이미 구매한 아이템입니다."라는
문구를 띄워야 하는데, 가져올 방법을 아무리 생각해도 모르겠음..
💡 Solve 💡
팀원들에게 질문을 하고, 해답을 가져옴 ❗️
# PlayerScript
public interface IPlayerCharacter
{
public Inventory Inventory { get; set; }
}
# MainScript
static IPlayerCharacter player;
Player 스크립트의 인터페이스 내부에 Inventory Class를 선언해 줌!
player.Inventory.Items.Contains(targetItem) ←을 사용할 수 있게 됨
📝 Study 📝
Program Script 내에 Item List 작성
Shop script 만들었다가 굳이 필요해 보이지 않아서 삭제함.
상점의 Item List와 0번의 나가기 버튼을 ReadLine으로 인풋값을 받아 동시에 처리하기!
⭐️ BuyItem(result)를 사용해 CheckInput에서 들어온 값을
BuyItem함수에서도 적용할 수 있게 됨❗️ ❗️ ❗️
int result = CheckInput(0, itemDb.Count);
if (result == 0)
{
ShopUI();
}
else if (result >= 1 && result <= itemDb.Count)
{
BuyItem(result);
ShopBuyUI();
}
⭐️ BuyItem(int result)로 값 받아 넣기
public static void BuyItem(int result)
{
Item targetItem = itemDb[result-1];
if (player.Inventory.Items.Contains(targetItem))
{
Console.WriteLine("이미 구매한 아이템입니다.");
Console.WriteLine("\n다음으로 넘어가시려면 [ENTER]를 입력해주세요.");
}
else
{
if (player.Gold >= targetItem.Price)
{
Console.WriteLine("구매를 완료했습니다.");
Console.WriteLine("\n다음으로 넘어가시려면 [ENTER]를 입력해주세요.");
player.Gold -= targetItem.Price;
player.Inventory.Items.Add(targetItem);
}
else
{
Console.WriteLine("골드가 부족합니다.");
Console.WriteLine("\n다음으로 넘어가시려면 [ENTER]를 입력해주세요.");
}
}
🔥 10/4 금요일 목표 🔥
1. 마지막 UI점검하기 🔎
2. 발표자료 준비 완료하기 📝