포스트

Unity 기반 FPS 프로젝트 설계

Project Settings

Input System Package

입력 시스템은 이것을 이용한다. 이유는 다음과 같다.

  1. 새로운 입력 시스템
  2. 게임패드 등의 확장성
  3. 입력 장치와 게임 동작을 분리할 수 있음

따라서 결과적으로 개발이 편해진다.

Force Text

Unity가 관리하는 직렬화 대상 에셋을 YAML 기반 텍스트 형식으로 저장할 수 있다.

Git과 Codex 기반의 구현이라서, 근데 기본으로 설정되어 있다.

Visible Meta Files

Asset에 대응되는 Metadata를 보이게 해서 이것도 Git과 Codex에게 도움을 줌

URP

가벼운 포트폴리오 용이므로 렌더링 파이프라인은 URP가 좋다고 생각했다.

HDRP가 제공하는 고급 옵션들까지는 추구할 생각이 아직은 없다(초보이므로)

Project Structure

프로젝트 디렉터리 구조

디렉터리 구조는 codex가 추천해준 것을 사용하는데 꽤 직관적이라 이대로 사용해도 될 듯 하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
MyFPS/
├── Assets/
│   ├── _Game/
│   │   ├── Scenes/
│   │   ├── Scripts/
│   │   ├── Prefabs/
│   │   ├── Materials/
│   │   ├── Audio/
│   │   └── Settings/
│   └── ThirdParty/
├── Packages/
├── ProjectSettings/
├── AGENTS.md
├── GAME_DESIGN.md
└── .gitignore

Packages

TextMeshPro

게임 내 HUD(체력, 탄약, 점수 등)를 표시하기 위해 TextMeshPro를 사용한다.

AI navigation

NavMesh 기반의 경로 탐색 및 내비게이션을 지원하는 패키지다.

적 AI가 장애물을 피해 이동하도록 구현할 때 사용할 예정이다. 다만 적의 판단과 전투 로직은 별도로 구현해야 한다.

Cinemachine

카메라의 위치·회전·추적·전환·흔들림 등을 제어하는 시스템이다.

ProBuilder

ProBuilder는 Unity Editor 안에서 직접 3D 지형과 구조물을 모델링하는 도구이다.

게임플레이를 빠르게 검증하기 위해 맵을 빠르게 에디터 안에서 제작할 수 있다.

Unity Test Framework

자동화 테스트 도구이다. 이것도 써보는 것 연습에 도움이 될 듯

Tools

git

gitignore로 git 추적 대상을 관리한다.

git LFS라는 것이 있는데 나중에 써야할수도?

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.