InfiniteRunner모작 #06

부침개는 맛있다.·2022년 3월 20일
0

InifiteRunner모작

목록 보기
6/6
post-thumbnail

일지

구현한 기능
UI관련

  • 재도전 메뉴 기능

버그수정

  • 캐릭터와 장애물과의 중복판정 문제
  • 캐릭터 죽음이후 재도전 매뉴에서 UI불능 문제

재도전 메뉴 기능 구현과 UI불능문제 해결

획득한 코인수를 표시하는 UI에 WidgetSwitcher를 사용하여 구현하였다.
이때 죽음을 알리기는 방법을 따로 찾기보다 게임모드에 이 위젯을 넣고 캐릭터가 죽으면 죽었을시 나타나야할 WidgetSwitcher 인덱스로 변경하는 방법을 사용하였다.

이때 재도전 메뉴가 화면에 표시까지는 되었었는데 버튼들에 반응이 없다는 문제가 있었다.
이는 구글링하고 InputMode를 수정하여 가능했었다.
그리고 기본 유튜브를 보며 따라할 때 "달리기"에 진입하면 InputMode를 GameOnly로 설정했었기에 GameRule에서 캐릭터의 죽음을 감시하다가 감지하면 UIOnly로 설정하여 버튼입력이 가능하게 수정했다.
그러나 이는 다음에 코드로 옮길시 "옵저버패턴을 적용하면 좀더 깔끔한 코드가 될것으로 예상된다.

캐릭터와 장애물과의 중복판정 문제 해결

처음 이문제를 알아챈 건 소리였다.
캐릭터가 죽을시 "으아악"하는 사운드를 플레이되게 하였는데
코너에서 잘못된 입력으로 죽을때는 깔끔한 소리가 나는반면,
바위에 부딛혀 죽을 시 뭔가 울리는 소리가 났었기 때문이었다.
이후 바위의 OnComponentHit이 호출될 시 로그를 남기게 했는데 여러번 나오는것을 보고 중복판정이 있음을 확인했다.

문제해결은 문제의 원인을 찾는것부터 시작했다. 왜 충돌이 판정될까?
원인으로 캐릭터의 죽음과정을 의심했고 죽을시 호출되는 이벤트에서 캐릭터를 완전히 멈추게 하는게 아닌 그저 화면에 보이지 않게 함으로서 구현되었음을 의심했고,
이를 해결하기위한 방법으로 죽음호출시 캐릭터를 완전히 멈추게 만드는 과정을 추가하는걸 시도했고, 그 결과
OnComponentHit이 한번만 호출됨과 죽음 사운드가 깔끔하게 남을 확인하여 문제해결을 마무리했다.

다음 할일

  • 맵 벗어날시(낙하) 죽음 기능
  • 이동한 거리 계산 기능
  • 일정 거리에 도달하면 게임 클리어 기능
  • 본 스테이지 클리어시 다음 스테이지 로드 기능
  • 아이템(자석, 무적, 공중부양 등등) 기능
profile
저는 됩니다. 할 겁니다.

0개의 댓글