이 레포지토리에는 두 개의 Unity 프로젝트가 포함되어 있습니다.
- Guardian's Valor: 3D 타워 디펜스 게임
- SpaceShuttle: 간단한 3D 우주 슈팅 게임
Guardian's Valor는 Unity 엔진으로 개발된 3D 타워 디펜스 게임입니다. 플레이어는 전략적으로 타워를 건설하여 몰려오는 적들로부터 기지를 방어해야 합니다. 이 프로젝트는 '타워 디펜스 강의'를 기반으로 제작되었으며, 게임의 핵심 메커니즘과 확장 가능한 아키텍처를 구현하는 데 중점을 두었습니다.
- 웨이브 기반 적 스폰:
ObjectPool을 사용하여 적들을 주기적으로 생성하고 비활성화하여 메모리 사용을 최적화합니다. - 타워 건설 및 경제 시스템:
- 플레이어는
Bank에 저장된 골드를 사용하여 타워를 건설할 수 있습니다. - 타워 건설 시 비용이 차감되며, 잔액이 부족하면 건설할 수 없습니다.
- 플레이어는
- 경로 시스템: 적들은 사전에 정의된
Waypoint를 따라 이동합니다. - 게임 오버 조건: 적이 최종 목적지에 도달하면 플레이어의 골드가 감소하며, 골드가 0 미만이 되면 게임이 다시 시작됩니다.
이 프로젝트는 단순한 기능 구현을 넘어, 다음과 같은 기술적 특징을 통해 확장성과 성능을 확보했습니다.
- 오브젝트 풀링 (Object Pooling): 적(Enemy) 오브젝트를 반복적으로 생성(
Instantiate)하고 파괴(Destroy)하는 대신, 오브젝트 풀을 구현하여 재사용함으로써 가비지 컬렉션(GC)을 최소화하고 부드러운 게임 플레이를 보장합니다. - 동적 경로 탐색을 위한 그리드 시스템 기반:
GridManager를 통해 게임 월드를 격자로 나누고, 향후 A*와 같은 고급 경로 탐색 알고리즘을 도입할 수 있는 기반을 마련했습니다. - 고급 터레인 셰이딩 (MicroSplat): Unity Asset인 MicroSplat을 통합하여 표준 터레인 셰이더보다 뛰어난 비주얼 퀄리티를 구현했습니다.
- 컴포넌트 기반의 유연한 아키텍처:
Bank,Tower,EnemyMover등 각 기능별로 역할을 명확히 분리하여 코드의 재사용성과 유지보수성을 높였습니다.
- 이 프로젝트를 클론하거나 다운로드합니다.
- Unity Hub를 엽니다.
- 'Add project from disk'를 선택하고 이 프로젝트 폴더를 지정합니다.
- 프로젝트에 맞는 Unity Editor 버전(권장:
2021.3이상)을 선택하여 엽니다. Assets/Guardian's Valor폴더에 있는Guardian's Valor.unity씬을 열어 게임을 실행합니다.
SpaceShuttle은 간단한 3D 우주 슈팅 게임입니다. 플레이어는 우주선을 조종하여 적들을 파괴합니다.
- 플레이어 조종:
- 키보드 입력(Horizontal, Vertical)을 통해 우주선을 상하좌우로 움직일 수 있습니다.
- 이동에 따라 우주선이 자연스럽게 회전합니다.
- 공격 시스템:
Fire1버튼(기본: 마우스 왼쪽 클릭 또는 Ctrl)을 누르고 있는 동안 레이저를 발사합니다.- 레이저는 파티클 시스템으로 구현되었습니다.
- 적과 충돌:
- 적(
Enemy)은 플레이어의 레이저(Particle)에 맞으면 파괴됩니다. - 플레이어가 장애물이나 적과 충돌하면 충돌 이벤트가 발생합니다.
- 적(
- PlayerController.cs: 플레이어의 이동, 회전, 레이저 발사를 처리합니다.
- Enemy.cs: 적의 행동을 제어합니다. 파티클과 충돌 시 자신을 파괴합니다.
- CollisionHandler.cs: 플레이어의 충돌 이벤트를 처리합니다.
- Chain.cs:
Space키를 누르면 연결된 오브젝트에 힘을 가하는 테스트용 스크립트로 보입니다.
- 이 프로젝트를 클론하거나 다운로드합니다.
- Unity Hub를 엽니다.
- 'Add project from disk'를 선택하고 이 프로젝트 폴더를 지정합니다.
- 프로젝트에 맞는 Unity Editor 버전(권장:
2021.3이상)을 선택하여 엽니다. Assets/SpaceShuttle/Scenes폴더에 있는SpaceShuttle.unity씬을 열어 게임을 실행합니다.