3D Quarter View Action 게임 개발 6일차 (완)

mingu Lee·2025년 4월 24일
post-thumbnail

오늘 진행한 작업은 아래와 같다.

  1. 상점 시스템
  2. UI 로직 연결
  3. Stage 이동
  4. EnemySpawn
  5. Game Over
  6. 시작 화면
  7. 사운드 추가

6가지 정도를 진행했고, 간단하게 리뷰해보겠다.

상점 시스템


Player가 Coin으로 다양한 Item을 살 수 있도록 상점 시스템을 만들었다.

소모품 상점장비 상점

이런 식으로 NPC와 Table을 세팅하여 어떤 물건을 팔고 있는지 확인할 수 있도록 Object를 만들었다.

또한, 각 상점 앞에 Zone을 설치하여 Zone 안에서 E button을 누를 경우 상점 창이 화면에 뜨도록 했다.

상점 UI는 현재 팔고 있는 Item과 Item의 이름, 가격 등을 보여주고 있으며 구매할 경우 상점 앞 랜덤한 위치에 해당 Item이 Spawn 된다.

만약, Coin이 모자랄 경우 상점 창 아래에 보이는 NPC의 대화가 달라지는 기능도 추가했다.

상점 Zone을 나가거나 X를 누르면 상점 창이 사라지며 NPC가 이에 상호작용하는 Animation도 구현했다.

구매했을 경우 상점 앞에 Spawn, 돈이 부족하면 대사가 바뀌는 것을 볼 수 있다.

UI 로직 연결


저번에 만들었던 UI에 실제 게임 플레이에 따라 값이 바뀌는 작업을 진행했다.

GameManager의 LateUpdate 함수에서 처리하였으며, UI를 관리하는 Object의 함수를 호출하여 값이 바뀔 경우 실시간으로 Update 해주었다.

Game 정보, Player 정보, Enemy 정보 등 UI에 표기되는 모든 것에 대해서 처리를 하고 있다.

Stage 이동


Player가 상점에서 Item을 구매한 뒤에 특정한 Zone 위로 이동할 경우 Stage가 시작되는 기능을 만들었다.

상점 뒤편으로 가보면 바닥에 Next Stage라고 적힌 Zone이 있는데, 이 Zone 위로 이동하면 다음 Stage가 시작된다.

Enemy Spawn


Stage가 시작됐을 경우 맵에 존재하는 4개의 Spawn 지점에서 랜덤하게 Enemy가 생성된다.

위에 보이는 4개의 Zone에서 Enemy가 Spawn 된다.

Stage마다 Stage Level * 5만큼 Enemy가 Spawn되며, 모두 잡을 경우 Stage Clear와 함께 상점 Stage로 다시 바뀐다.

이때, 몬스터에 가중치를 설정하여 Spawn되는 비율을 다르게 했다.

Stage가 5의 배수일 때는 일반 Enemy가 아닌 Boss가 Spawn되도록 했다.

Game Over 및 재시작


Player가 Enemy의 공격에 맞아 HP가 0이 될 경우 Game Over가 되는 기능도 추가했다.

doDie라는 Animation을 실행하며, 죽은 뒤에 Enemy에 의해 밀리지 않게 isKinematic을 활성화 해주었다.

죽었을 경우에는 Game Over Panel이 활성화 되고, 재시작 버튼을 누르면 다시 게임을 시작할 수 있다.

시작 화면


게임이 바로 시작하면 이상하므로 실제 게임을 플레이 하기 전에 보여주는 Panel을 만들었다.

화면에는 Title과 게임의 최고 점수, 시작 버튼, 나가기 버튼을 배치했다.

이때, 시작 화면 Camera를 따로 배치하여 시작 화면에서는 카메라가 좌우로 이동하고 있는 Animation을 추가했다.

사운드 추가


이전 Undead Survivor 게임을 만들 때 사용했던 Audio Manager 시스템을 그대로 사용하여 이번 게임에도 적용했다.

Static으로 선언하여 필요한 부분에서 AudioManager를 호출하여 사용하는 방식이다.

Audio Source는 생성된 것 중 쉬고 있는 것을, 모두 사용 중이라면 동적으로 하나 더 생성하여 사용하도록 했다.

오늘의 결과물


영상 용량으로 인해 유투브에 업로드했다.

프로젝트를 하며 느낀 점


사실상 이번에 처음 만들어보는 3D 게임인데, 2D 보다 신경써야할 부분이 더 많아서 생각보다 어려웠다.

하지만 더 어려웠던만큼 NavMeshAgent나 Trail Renderer 같이 새로 배운 것도 많고, 기존의 지식들을 다양하게 활용해보는 뜻깊은 시간이었다.

Asset은 골드메탈님이 제공해주셨지만, 실제 개발에 있어서는 영상을 무작정 따라하지 않고 내 방식으로 코드를 변경하고 구조를 바꾸는 과정에서 실력이 많이 늘었다는 느낌이 든다.

다음 골드메탈님 강의 영상은 비주얼 스크립팅인데 이 부분은 또 어떤 느낌이 들지 정말 기대된다.

프로젝트 Github 주소


https://github.com/dlalsrn/3D-Quarter-View-Action

3D Quarter View Action 게임 개발 프로젝트 끝.

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

0개의 댓글