3D Quarter View Action 게임 개발 5일차

mingu Lee·2025년 4월 22일

오늘 진행한 작업은 다음과 같다.

  1. 보스 생성
  2. 게임 UI

보스 생성


일반적인 Enemy 3종류를 만들고 나서 이번엔 Boss를 만들었다.

Asset에 포함된 Prefab을 사용했고, Map에 추가해보면 위 사진과 같이 생성된다.

Boss Script는 Enemy Class를 상속받았는데, Enemy의 기본적인 로직과 더불어 Boss의 고유한 로직을 추가했다.

하지만 Enemy Script에서 공통으로 사용하는 함수도 있고 아닌 함수도 존재하는데, 처음 Enemy Script를 작성할 때 Generic하게 작성해서 각 Enemy Type마다 상속받아서 썼으면 좋았지만 그러지 못해서 좀 아쉽다.

다음부터는 Script를 작성하기 전에 설계를 잘 하고 작성해야겠다.

Boss는 Walk와 사거리 안에 들었을 시 Attack하는 로직이 존재하지 않고, 고유한 패턴 3가지가 존재하여 이를 Animator에 추가해주었다.

Boss는 이 3가지 패턴 중 랜덤하게 하나를 선택하여 사용한다.

  1. 미사일 발사 (Shot)
  2. 바위 투척 (Rock)
  3. 점프 공격 (Taunt)

이렇게 3가지 패턴이 존재하고, 각 패턴을 사용하고 나서는 일정 시간 휴식을 한다.

휴식하는 중에는 Player를 주시하고 있다는 느낌을 주기 위해 Player를 계속 바라보는 코드를 작성했다.

Player의 위치를 바라보는 것이 아닌, Player가 현재 위치에서 이동하고 있는 방향 쪽을 바라게보게 한 것은 추후 패턴에 사용하기 위함이다.

일단 3가지 패턴에 대해서 하나씩 리뷰를 해보겠다.

먼저, 미사일 발사이다.

이 패턴은 Boss가 Player를 향해 미사일 2발을 발사하는데, 각 미사일은 Player을 자동으로 추적한다.

저번 시간에 만들었던 Enemy C의 미사일처럼 Boss 미사일 Prefab을 만들었고, Boss 미사일은 Player을 추적해야하므로 Nav Mesh Agent Component를 추가했다.

미사일 발사 패턴이 시작되면 Boss의 좌, 우에서 추적 미사일 2발을 일정 간격을 두고 발사한다.

Boss가 발사한 미사일이 Player를 잘 추적하는 것을 볼 수 있다.

현재 추적 성능이 너무 좋아서 각속도를 줄이는 방향으로 해서 밸런스를 조정할 계획이다.

다음으로, 바위 투척이다.

이 패턴은 Boss가 자신의 앞에 바위를 생성하고, 기를 모아 바위의 크기 및 회전 속도를 증가시키며 일정 시간 후에 발사하는 패턴이다.

Rock Object가 생성되면 2초 동안 0.01초마다 회전 속도와 Object의 크기를 증가시킨다.

이후 2초가 지나면 Gravity를 활성화하여 앞으로 굴러가게 했다.

마지막으로, 점프 공격이다.

Boss가 Player의 위치로 점프하여 착지하며, Boss의 아래쪽에 Player가 있을 경우 데미지를 입는다.

Boss의 바닥 쪽에 공격용 Collider를 따로 만들어서 착지할 때 활성화 되게 했다.

Boss가 Player의 방향으로 이동하는 것은 NavMeshAgent를 사용했다.

처음에는 NavMeshAgent를 멈췄다가 점프 패턴이 시작되면 활성화하여 Player를 추적한다.

이때, Boss의 Collider에 다른 물체가 충돌하여 예상치 못한 일이 발생하는 것을 방지하기 위해 점프 중에는 Boss의 Collider를 비활성화 해주고, 착지했을 때 다시 활성화했다.

Boss의 착지에 데미지를 입었을 경우엔 Player에게 넉백을 주는 기능도 추가했다.

게임 UI


게임 진행 시 정보를 알려줄 UI도 만들었다.

아직 각 UI에 로직 연결은 안 했고, 기본적인 UI 배치만 해두었다.

왼쪽 상단에는 현재 점수, 왼쪽 하단에는 체력, 총알, 코인의 개수를 배치했다.

오른쪽 상단에는 현재 스테이지와 진행한 시간, 오른쪽 하단에는 잡은 Enemy의 수를 배치했다.

중앙 상단에는 Boss 등장 시 Boss의 체력, 중앙 하단에는 각 버튼에 해당하는 무기의 종류와 마우스 좌, 우 클릭에 대한 UI를 배치했다.

실제 게임 진행에 따라 값이 변하는 로직은 내일 추가하겠다.

오늘의 결과물


Boss의 패턴을 피하며 처치하는 테스트 영상이다.

profile
Github: https://github.com/dlalsrn

0개의 댓글