-
내일배움캠프 58일차 TIL - 최종 프로젝트 개발 진행 2TIL/Unity 2024. 7. 9. 20:57
[한 줄 요약]
버그 수정과 사용자 경험 향상에 힘쓰고, 아이템 퀵슬롯 동작 구현을 완료하였다.
[학습 내용]
최종 프로젝트 기초 개발
컨트롤 UI
씬 간 연결
기존의 여러 개로 나뉘어 있던 컨트롤 UI를 싱글톤으로 만들고 하나로 합쳤다.
던전 입장 시 고양이 UI로 전환
컨트롤 UI가 하나로 합쳐짐에 따라 상황에 따른 UI 전환이 필요했다. 그래서 던전 입장 시 고양이가 공격을 할 수 있도록 고양이 전용 UI로 전환된다.
캐치존에 입장할 경우 UI가 비활성화된다.
아이템 퀵슬롯
퀵슬롯 추가
어느 정도 버그가 잡혀서 던전 내 아이템 사용에 도전하였다. 그러기 위해 일단 퀵슬롯부터 제작해야 했다.
던전 안에서는 인벤토리를 열 수 없게 되어있기 때문에 마을에서 퀵슬롯에 아이템을 등록한 뒤 던전에 들어가 사용해야 한다. 컨트롤 UI에 퀵슬롯을 추가하고, 인벤토리에서 아이템을 퀵슬롯에 등록하면 해당 아이템 이미지로 변한다.
마을에서는 사용이 불가능하기 때문에 던전에 들어가야지만 버튼이 활성화된다.
아이템 사용
던전에 들어가면 스폰된 고양이의 HealthSystem을 받아와서 HP를 회복시켜준다. 하나 사용할 때마다 인벤토리에서 개수가 줄어든다.
아이템 전부 사용 시
퀵슬롯에 등록된 아이템을 전부 사용했을 경우 더 이상 사용이 되지 않게 구현하였다. 특히 시각적으로 확인할 수 있도록 퀵슬롯 UI를 X자로 전환되도록 구현하였다.
사용자 경험 향상
스타팅 고양이
게임이 시작하면 기본으로 낮은 등급의 스타팅 고양이가 한 마리 지급되도록 구현하였다. 고양이가 없으면 던전에 들어갈 수 없기 때문에 한 마리를 지급하고, 자동으로 파트너 고양이로 등록되도록 구현하였다.
기본 아이템 지급
게임이 시작하면 기본으로 HP 아이템이 5개 지급되도록 구현하였다. 그런데 지급은 잘 되나, 한 개밖에 들어오지 않는 버그가 발생했다. 일단 치명적인 건 아니었기에 내일 고칠 내용에 포함시켰다.
파트너(대표) 고양이 방생
파트너 고양이가 방생될 경우 인벤토리 내의 다른 고양이가 자동으로 파트너 고양이가 되도록 구현하였다. 마지막 한 마리를 방생할 경우는 아직 다루지 않았는데, 이것을 막아야 할지 말아야 할지 조금 더 고민해보기로 하였다.
공격 모션 중 이동 제한
기존에는 공격 모션 중에 이동 입력을 하면 고양이가 슬라이드 하듯이 미끄러져 이동할 수 있었다. 이 때문에 게임의 재미가 조금 떨어지는 듯한 느낌을 받았다. 그래서 공격 모션 중에는 고양이가 이동할 수 없도록 이동을 제한하였다.
버그 수정
빈 슬롯이 없어 고양이를 추가할 수 없는 버그
이 문제는 캐치존에서는 고양이가 잘 잡히나 리스트에서 직접 추가를 하려고 하면 빈 슬롯이 없다는 문구와 함께 추가가 되지 않는 버그였다. 치명적인 것은 아니었으나, 차후에 문제가 될 수 있어 시간을 들여 해결해보았다.
반복 테스트 결과 캐치존에 한 번 입장했다가 돌아오면 해당 문제가 생기는 것을 발견했다. 그래서 컴포넌트 할당쪽을 유심히 보았다.
역시나 문제 원인은 고양이 리스트를 씬이 바뀌면서 잃어버리는 것이었다. 마침 고양이 리스트를 싱글톤으로 전환하였기 때문에, 간단하게 전역 변수를 참고하도록 변경하였더니 해결되었다.
몬스터 말뚝 버그
원래 몬스터가 고양이를 감지하지 못해도 랜덤하게 주변을 서성이도록 구현되었다. 그런데 어느새부턴가 가만히 서서 움직이지 않는 현상이 발생했다. 고양이를 가까이 접근시키면 공격은 정상적으로 이루어졌다.
그래서 처음에는 주변의 장애물을 인식하는 레이캐스트가 문제인가 싶었다. 그래서 코드를 계속 읽어보았는데도 문제점을 찾을 수 없었다.
그래서 중단점을 박고 디버그를 실행해보았다. 이동을 반복하는 코루틴이 있어 그곳을 중점적으로 보았는데, 코루틴이 한 번만 실행된다는 것을 알게 되었다.
그렇다면 코루틴을 종료시키는 무언가가 있다는 추측이 되어 코루틴을 종료시킬 수 있는 모든 곳을 분석해보았다. 그랬더니 몬스터 HP가 0이 되면 움직임 코루틴이 종료되는 부분을 찾을 수 있었다.
그래서 입장 시 몬스터 HP를 로그로 찍어보니 0으로 출력되었다. 그래서 코드를 살펴보니 HP 할당을 Awake가 아닌 Start에서 하고 있었다. 그래서 뒤늦게 HP가 반영되어 던전 입장 시 죽은 것으로 판단되어 움직임을 멈췄던 것이었다.
그래서 HP 할당을 Awake로 옮겨주자 버그가 해결되었다.
[회고]
오늘까지 버그 수정과 디테일에 힘쓰고, 오후에는 아이템과 퀵슬롯에 시간을 투자하였다. 내일은 재화, 상점, 스킬 등에 집중할 수 있었으면 좋겠다. 점점 개발이 늦춰지는 느낌이 들어 불안해진다.
내일 오전에는 퀵 슬롯에 남은 아이템 개수 텍스트를 출력하는 것과 시작 아이템이 여러 개 지급되지 않는 버그를 수정하도록 해야겠다.
'TIL > Unity' 카테고리의 다른 글
내일배움캠프 60일차 TIL - 최종 프로젝트 개발 진행 4 (0) 2024.07.11 내일배움캠프 59일차 TIL - 최종 프로젝트 개발 진행 3 (0) 2024.07.10 내일배움캠프 57일차 TIL - 최종 프로젝트 개발 진행 1 (0) 2024.07.09 내일배움캠프 56일차 TIL - 최종 프로젝트 기초 개발 5 (0) 2024.07.05 내일배움캠프 55일차 TIL - 최종 프로젝트 기초 개발 4 (0) 2024.07.04