개인프로젝트 스파르타 던전 (Text 게임) 만들기 2일차
유니티 게임개발캠프 TIL 9일차
오늘은 어제에 이어 개인프로젝트를 만들었다.
상점에서 구매하기창으로 넘어가서 상점아이템목록에 있는 것들을 골라 구매하는 코드를 써볼것이다.
이때 상점에 있는 아이템이 이미 가지고있는 아이템일경우
그 아이템은 가격 대신 보유중이라는 텍스트를 띄워 주려 했다.
그리고 아이템을 구매하려고 숫자를 입력했을때 나올수있는 상황은
구매성공했을때, 이미 보유중인 아이템일때, 그리고 골드가 부족할 때이다.
먼저 그림처럼 아이템구매창의 텍스트들을 적어주고 그 밑에 보유골드 그리고 상점의 아이템목록을 불러왔다.
이때 상점의 아이템 목록과 내가 보유중인 아이템중 겹치는게 있으면 가격 대신 보유중이라는 텍스트를 넣었다.
그리고 입력한 숫자와 상점아이템목록의 배열을 비교하여 해당 아이템의 스탯을 불러왔다
Any()를 이용해서 이름이 양쪽의 목록을 비교해 이름이 같은 상황을 bool Owend라고 지정했다.
이제 보유중일때, 보유중이지않고 보유골드가 아이템 가격보다 많을때,
보유골드가 부족할때 이렇게 세가지경우를 만들어 줬다.
그리고 아이템을 구매하면 나의 인벤토리에 해당 아이템의 스탯을 받아서 저장해주었다.
이제 아이템을 판매하기 창을 구현하려했다.
구매하기랑 비슷할거 같아서 쉽게 생각했지만 판매가격이 구매가격의 85%라는 조건을 걸려다보니 쉽지 않았다.
처음엔 구매가격에다가 0.85를 그냥 바로 곱해주고 적용하려 했으나 오류들이 곳곳에서 생겨났다.
그래서 판매가격을 아예 함수로 만들어서 아이템목록에 있는 해당아이템의 가격에 85%를 미리 적용해놓았다.
그리고 아이템 판매창에 판매할 아이템들 옆에 판매가격을 계산해서 미리 보여주려했다.
내 인벤토리에 있는 아이템목록을 나열하고 그 아이템의 판매가격을 옆에다가 적어줬다.
CalculateSellPrice(item)는 밑에서 선언했다.
위에서부터 입력한 값을 정수형으로 받아 아이템목록의 값과 비교시켜서
먼저 0을 입력하면 이전 화면인 상점창으로 이동되고
그게 아닌 아이템목록의 값과 매칭되는게 있다면
아이템을 판매처리하고 보유골드도 판매가격만큼 올려주었다.
그리고 인벤토리에서 해당 아이템을 제거시킨다.
여기까지 아이템 판매하기까지 구현해 보았고 몇번 실행해봤을때에 문제없이 적용되는것 같다.
그 이후에 장착 기능 개선이라고 무기와 방어구는 각각 하나씩만 착용가능하게 하고
장비를 착용할때 이미 다른 장비를 착용중이라면 해당장비는 해제하고
새로 착용하는 장비로 바꾸는 기능까지 구현해 보려 하는데 여기서 좀 많이 막힌다.
이미 코드들을 왕창 써놓은 상황에서 새로운 기능을 중간에 넣으려고하니 훨씬 어려운것같다.
아무래도 올라온 강의를 듣고 나서 해봐야 할 것 같다.