← 프로젝트 목록으로

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

3D FPS - I Can't Design Class Diagram 1

세부 설계

  • 적 AI

    • 시야각, 감지 거리, 장애물 여부(Raycast)를 함께 검사해 플레이어 감지 여부 판정
    • 우수법으로 자신의 오른쪽의 장애물 여부를 판정, 없을 경우 오른쪽으로 회전하도록 구현
  • 미로 생성 알고리즘

    • 짝수 좌표는 벽, 홀수 좌표는 통로가 되도록 그리드를 초기화
    • 각 통로 셀마다 랜덤하게 아래쪽 또는 오른쪽 벽을 허무는 Binary Tree 알고리즘으로 미로를 절차적으로 생성