본문 바로가기

Unity/Unity 스파르타

8주차 - 인벤토리와 아이템 설명창의 재사용 + 상점

728x90

인벤토리 구현과, 아이템 설명창을 만들어 보자!

 

1. 인벤토리를 어떻게 구현할 것인가.

  • 일단 아이템을 어떤식으로 관리할 것인가.
    • 스크립터블 오브젝트를 사용해 아이템 데이터를 만들어 놓자.
      • 아이템이 가지고있을 수 있는 스텟 변수 정하기 
      • 상점 또는 새로운 아이템을 얻었을때 새로운 스크립터블 오브젝트를 만들어 줘야 하기 때문에 카피 함수를 만들어 놓자
        • 새로운 아이템이 장비아이템인 경우 인벤토리에 같은 아이템이 있더라도 서로 다른 아이템 취급을 해줘야 함.
        • 같은 아이템이지만 아이템을 강화시키거나, 내구도가 감소했을 경우 두개의 아이템의 능력치가 서로 달라지게됨.
      • 아이템의 능력치를 쉽게 가지고 올 수 있는 방법이 뭐가있을까.
        • 아이템의 능력치를 가져올때 , 능력치 이름과 수치를 가지고있는 구조체를 만들어 리스트에 담아 반환해주자.
  • 인벤토리 구성은 어떻게 할 것인가.
    • Scroll View를 사용해 인벤토리를 만들어 보자.
      • 수직 스크롤과 수평 스크롤은 사용하지 않을 것이기 때문에 인스펙터창에 수직수평스크롤을 NONE으로 해준뒤 스크롤뷰의 자식 오브젝트중 뷰포트를 제외하고 삭제해주자.
        • content에 아이템이 들어갈 것이고, 아이템은 그리드 형식으로 차곡차곡 넣어주자.
          • content에 Grid Layout Group 컴포넌트 추가, 패딩, 셀사이즈, 스페이스를 적절하게 조절해주자
          • Content Size Fitter 컴포넌트를 추가해 스크롤링이 제대로 될 수 있게 해주자.
        • Viewport의 Rect Transform 설정으로 마스크를 조절해주자.
    • 인벤토리 매니저를 만들어 아이템을 박스를 만들어 보자
      • 기본적인 아이템박스를 만들고 프리펩에 저장해놓자
      • 아이템 컨트롤러 스크립트를 만들어 아이템박스를 만들때 컴포넌트 추가시켜주자
        • 아이템컨트롤러에 스크립터블오브젝트 아이템데이터를 할당 해주자
        • 아이템 박스에 아이템컨트롤러에 추가한 아이템데이터를 사용해 이미지를 넣어주자.
        • 아이템을 누르면 아이템창이 나오게 할 것 이기 때문에, 아이템 컨트롤러의 온클릭 에드이벤트리스트너를 추가해 주자.

2. 아이템 설명창의 재사용

  • 아이템 정보창의 구성은 어떻게 할 것인가.
    • 폼을 하나 만든뒤 정보창을 킬때 데이터만 갈아 끼워주는 식으로 만들어 보자.
      • 모든 ui를 관리하는 싱글턴 매니저를 만들어 아이템정보 폼을 위 매니저에서 관리하도록 하자.
      • 위에서만튼 아이템 박스에 온클릭 이벤트로 UI매니저에 아이템 데이터를 실어 보내주자.
      • 아이템 정보창전용 스크립트를 만들고, 정보창이 생성될때 옮겨 받은 아이템 데이터를 사용해 폼을 구성하자.
        • 인벤토리에서 정보창을 켰을때, 상점에서 켰을때, 아이템 종류가 소모품일때, 경우에 따라 정보창에 부가 설명이 달라지게 만들자.
        • 아이템의 능력치를 가져와 능력치에 따른 이미지사진과 함께 폼을 구성해주자

  • 상황에 맞는 정보창
    • 상점에서 파는 아이템의 정보를 확인할때는 능력치와 상세설명, 취소 버튼만 나오게 해주자
    • 상점이 열려있는 상태에서 인벤토리의 아이템을 클릭했을시 판매
    • 인벤토리만 열려있을시 착용 및 해제 , 사용 상호작용

 

상점.

  1. 상점 UI 구성
  2. 상점에서 파는 아이템 UI구성
  3. 일정 시간마다 아이템 리셋
  4. 아이템 구매시 재구매 불가

 

728x90