[내일배움캠프 TIL] 36. 중간 점검, 코드 리팩토링

2023. 11. 7. 01:51내일배움캠프 Unity

[최종프로젝트 8]

오늘 작업은 만든 기능들을 점검하며 버그 및 추가할 사항을 찾아내고 팀원들과 기능을 병합하기 위한 정리를 할 것이다.

추가로 코드 리팩토링을 통해 불필요하거나 중복된 코드를 제거하고 무분별한 외부 스크립트 참조를 줄인다.

1. 플레이어

2. 필드 아이템

3. 인벤토리

4. 상점

5. NPC

6. 장착, 퀵슬롯

7. 팝업 UI Manager

8. 미니맵

9. 옵션

10. 키세팅

 

1. 플레이어

  • Inventory.cs
    • 상호작용 가능한 거리에 있는 NPC를 판단 → 상호작용키 입력시 NPC별 기능 호출
    • 실제로 가지고 있는 아이템들을 보관, Inventory UI가 참조함
    • 아이템 획득 및 사용
  • Equipment.cs
    • 현재 장착중인 아이템 판단
    • 장착중인 퀵슬롯 판단
    • Equipment UI가 참조함

 

2. 필드 아이템

  • 아이템 데이터베이스는 모든 아이템의 정보(SO)를 보관, 필드의 상자나 몬스터에게 파괴, 처치시 아이템을 드랍
  • 필드 아이템은 플레이어와 충돌시 플레이어의 인벤토리에 추가됨
  • 필드의 상자, 몬스터를 파괴 및 처치시 드랍되도록 수정

 

3. 인벤토리

  • Inventory UI.cs로 플레이어의 Inventory를 참조해 UI에 아이템을 나열.
  • 아이템을 모두 사용해 빈 공간이 생기면 자동 정렬
  • 슬롯을 눌러 해당하는 아이템을 사용 가능
  • 소모품은 소모품 별 효과를 발동, 개수 감소
  • 장착 아이템은 장착되며 플레이어 스탯에 영향, 개수 감소되지 않음
  • UsePanel 디자인 변경 필요
  • 버리기 기능 필요

 

4. 상점

  • 전체 아이템을 관리하는 아이템 데이터베이스에서 구매 제한이 풀려있는 아이템을 모두 표시
  • 아이템을 표시할 때 해당 아이템의 SO를 참조해 정보를 세팅
  • 구매시 인벤토리에 추가
  • 골드 지불 기능 추가 필요

 

5. NPC

  • NPC의 인식 범위에 들어오면 NPC가 인사하는 기능, 상호작용 키 활성화
  • 현재 NPC의 이름에 따라 다른 기능을 실행하도록 함 이후 NPC에 '역할 변수'를 주는 것이 좋아보임

 

6. 장착, 퀵슬롯

  • 인벤토리를 통해 아이템 장착 시 플레이어의 장착상태와 장착 UI에 반영
  • 장착 UI의 퀵슬롯을 통해 인벤토리의 소모품 등록
  • 퀵슬롯 클릭후 소모품을 등록하지 않고 나가면 다시 퀵슬롯 클릭했을 때 이전 Settable이 쌓여있음
  • 인벤토리에서 장착중인 아이템과 동일한 아이템에 모두 "E" 표시가 뜸

 

7. 팝업 UI Manager

  • 팝업UI를 모두 관리하는 스크립트
  • LinkedList에 팝업UI를 넣어 팝업UI 클릭시 맨 앞으로 가져오며 ESC 입력시 맨 앞에 있는 팝업부터 꺼지도록 함
  • 단축키를 눌러 해당하는 팝업을 켜고 끌수 있음. 켜진 상태에서 다시 누르면 꺼짐
  • 열려있는 팝업UI가 없을때 ESC를 누르면 Option UI(설정 창)가 나오도록 함

 

8. 미니맵

  • 플레이어 위치 추적할수 있는 방법 생각해보자
  • 보스룸이나 보너스 상자 등 표시해도 좋을듯함

 

9. 옵션

  • Sound Settings에 슬라이더 추가해 슬라이더로 사운드 볼륨 조절 기능 추가
  • 추가할만한 옵션 더 생각할 것

 

10. 키 세팅

  • 현재는 사용되는 키를 알려주는 기능뿐임
  • 버튼을 클릭하고 키를 입력하면 기존의 키가 입력한 키로 변경되는 기능 추가 (후순위)

 

 

[ 추가할 것 ]

  • 아이템 사용 팝업
    • Title
    • Cancel 버튼
    • Confirm 버튼
  • 퀵슬롯 리스트
    • Title
    • Slot - Slot UI 이미지로 변경
  • 캐릭터 스택 팝업
    • 현재 진행률 0%
    • 플레이어 담당자와 상의 필요