3D FPS - I Can't Design
설명 영상
기본 정보
- 사용 언어
- C#Unity
- 포지션
- 개인프로젝트
- 기간
- 2023.01 ~ 2023.05
- 팀 / 개인
- 개인
- 깃허브 링크
- GitHub에서 보기 →
프로젝트 소개
Unity 3D 기본 오브젝트만을 활용해 제작한 미로 탈출형 FPS 게임입니다.
사용 기술
- Object Pooling
- Binary Tree 기반 미로 생성
- 우수법 기반 길찾기
프로젝트 구성
플레이어
- Transform 기반 좌표 이동과 Rigidbody를 통한 물리 기반 점프 처리
- 적의 원거리 공격에 피격 시 이벤트 발생 및 체력 감소
총기
- 줌인/줌아웃과 우클릭 정조준
- 코루틴 기반 재장전 딜레이 및 UI 탄약 표시
- RayCast 히트스캔 방식 발사와 LineRenderer로 총구~피격 지점 궤적 표현
- 발사 딜레이 및 탄약 부족 시 발사 제한
탄피
- Object Pooling으로 발사 시 생성되는 탄피 오브젝트 재사용 처리
맵
- Binary Tree 알고리즘으로 미로를 절차적으로 생성
적 AI
- 우수법 기반 길찾기로 몬스터 추적 구현
- 시야를 본딴 Raycast 판정으로 플레이어를 감지하면 추적을 멈추고 공격 시행
게임 흐름
- 몬스터를 1마리 이상 처치한 뒤 목표 지점 도달 시 씬을 재시작하는 방식으로 클리어 처리
Class Diagram

세부 설계
적 AI
- 시야각, 감지 거리, 장애물 여부(Raycast)를 함께 검사해 플레이어 감지 여부 판정
- 우수법으로 자신의 오른쪽의 장애물 여부를 판정, 없을 경우 오른쪽으로 회전하도록 구현
미로 생성 알고리즘
- 짝수 좌표는 벽, 홀수 좌표는 통로가 되도록 그리드를 초기화
- 각 통로 셀마다 랜덤하게 아래쪽 또는 오른쪽 벽을 허무는 Binary Tree 알고리즘으로 미로를 절차적으로 생성