Skip to content

henry2craftman/3DProjects

Repository files navigation

3DProjects in Unity

이 레포지토리에는 두 개의 Unity 프로젝트가 포함되어 있습니다.

  1. Guardian's Valor: 3D 타워 디펜스 게임
  2. SpaceShuttle: 간단한 3D 우주 슈팅 게임

1. Guardian's Valor (가디언의 용맹)

🎮 프로젝트 개요

Guardian's Valor는 Unity 엔진으로 개발된 3D 타워 디펜스 게임입니다. 플레이어는 전략적으로 타워를 건설하여 몰려오는 적들로부터 기지를 방어해야 합니다. 이 프로젝트는 '타워 디펜스 강의'를 기반으로 제작되었으며, 게임의 핵심 메커니즘과 확장 가능한 아키텍처를 구현하는 데 중점을 두었습니다.

✨ 주요 기능

  • 웨이브 기반 적 스폰: ObjectPool을 사용하여 적들을 주기적으로 생성하고 비활성화하여 메모리 사용을 최적화합니다.
  • 타워 건설 및 경제 시스템:
    • 플레이어는 Bank에 저장된 골드를 사용하여 타워를 건설할 수 있습니다.
    • 타워 건설 시 비용이 차감되며, 잔액이 부족하면 건설할 수 없습니다.
  • 경로 시스템: 적들은 사전에 정의된 Waypoint를 따라 이동합니다.
  • 게임 오버 조건: 적이 최종 목적지에 도달하면 플레이어의 골드가 감소하며, 골드가 0 미만이 되면 게임이 다시 시작됩니다.

🛠️ 기술적 특징 및 해자 (Technical Moat)

이 프로젝트는 단순한 기능 구현을 넘어, 다음과 같은 기술적 특징을 통해 확장성과 성능을 확보했습니다.

  • 오브젝트 풀링 (Object Pooling): 적(Enemy) 오브젝트를 반복적으로 생성(Instantiate)하고 파괴(Destroy)하는 대신, 오브젝트 풀을 구현하여 재사용함으로써 가비지 컬렉션(GC)을 최소화하고 부드러운 게임 플레이를 보장합니다.
  • 동적 경로 탐색을 위한 그리드 시스템 기반: GridManager를 통해 게임 월드를 격자로 나누고, 향후 A*와 같은 고급 경로 탐색 알고리즘을 도입할 수 있는 기반을 마련했습니다.
  • 고급 터레인 셰이딩 (MicroSplat): Unity Asset인 MicroSplat을 통합하여 표준 터레인 셰이더보다 뛰어난 비주얼 퀄리티를 구현했습니다.
  • 컴포넌트 기반의 유연한 아키텍처: Bank, Tower, EnemyMover 등 각 기능별로 역할을 명확히 분리하여 코드의 재사용성과 유지보수성을 높였습니다.

🚀 실행 방법

  1. 이 프로젝트를 클론하거나 다운로드합니다.
  2. Unity Hub를 엽니다.
  3. 'Add project from disk'를 선택하고 이 프로젝트 폴더를 지정합니다.
  4. 프로젝트에 맞는 Unity Editor 버전(권장: 2021.3 이상)을 선택하여 엽니다.
  5. Assets/Guardian's Valor 폴더에 있는 Guardian's Valor.unity 씬을 열어 게임을 실행합니다.

2. SpaceShuttle

🎮 프로젝트 개요

SpaceShuttle은 간단한 3D 우주 슈팅 게임입니다. 플레이어는 우주선을 조종하여 적들을 파괴합니다.

✨ 주요 기능

  • 플레이어 조종:
    • 키보드 입력(Horizontal, Vertical)을 통해 우주선을 상하좌우로 움직일 수 있습니다.
    • 이동에 따라 우주선이 자연스럽게 회전합니다.
  • 공격 시스템:
    • Fire1 버튼(기본: 마우스 왼쪽 클릭 또는 Ctrl)을 누르고 있는 동안 레이저를 발사합니다.
    • 레이저는 파티클 시스템으로 구현되었습니다.
  • 적과 충돌:
    • 적(Enemy)은 플레이어의 레이저(Particle)에 맞으면 파괴됩니다.
    • 플레이어가 장애물이나 적과 충돌하면 충돌 이벤트가 발생합니다.

🛠️ 스크립트 구성

  • PlayerController.cs: 플레이어의 이동, 회전, 레이저 발사를 처리합니다.
  • Enemy.cs: 적의 행동을 제어합니다. 파티클과 충돌 시 자신을 파괴합니다.
  • CollisionHandler.cs: 플레이어의 충돌 이벤트를 처리합니다.
  • Chain.cs: Space 키를 누르면 연결된 오브젝트에 힘을 가하는 테스트용 스크립트로 보입니다.

🚀 실행 방법

  1. 이 프로젝트를 클론하거나 다운로드합니다.
  2. Unity Hub를 엽니다.
  3. 'Add project from disk'를 선택하고 이 프로젝트 폴더를 지정합니다.
  4. 프로젝트에 맞는 Unity Editor 버전(권장: 2021.3 이상)을 선택하여 엽니다.
  5. Assets/SpaceShuttle/Scenes 폴더에 있는 SpaceShuttle.unity 씬을 열어 게임을 실행합니다.

About

3D 타워 디펜스 & 3D Shooting

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages