kinkeika / Vampire-Survivor

Make Vampire-Survivor with Unity

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UNDEAD SURVIVOR

image-20230119153212524

구현 시스템

  • 애니메이션

    각 오브젝트별로 추가적인 애니메이션을 추가했으며, UI에도 애니메이션이 첨부되었다.

  • UI 애니메이션

Weapon

각 캐릭터는 전용 무기를 가지고 시작하며, 게임 진행에 따라 추가적인 무기 획득 및 무기의 능력치를 증가시킬 수 있다.

  • 무기의 능력치는 무기의 레벨과 플레이어의 능력치에 따라 결정되며, DataManager를 통해 각 무기의 레벨별 능력치를 불러와 무기ID와 현재 무기 레벨에 맞는 데이터를 무기 능력치에 저장한다.

  • 현재 구현 무기 - Knife, Fireball, SpinWeapon, Poison, Shotgun, Lightning

text text text

PlayerStat

캐릭터의 주요 능력치는 MaxHp, MoveSpeed, Damage, Defense, Cooldown, Amount로 구성된다.

  • MaxHp : 최대 Hp. 1당 1만큼 증가한다.
  • MoveSpeed : 이동 속도. 1당 1만큼 증가한다.
  • Damage : 공격력. 10당 10%만큼 공격력이 증가한다.(합계산)
  • Defense : 방어력. 1당 1만큼 증가한다.
  • Cooldown : 무기 재사용 대기시간. 10당 10%만큼 대기시간이 감소한다.(곱계산)
  • Amount : 무기 생성 개수. 한번에 생성하는 무기의 개수가 증가한다. 1당 1만큼 증가한다.

text

Item

몬스터는 사망 시 Exp과 일정 확률로 Item을 생성한다. 캐릭터는 ItemGetterObject를 통해 특정 거리의 아이템의 존재를 확인할 수 있으며, 아이템을 확인할 시 아이템이 캐릭터를 향해 이동하며 캐릭터와 충돌 시 각 아이템의 OnItemEvent를 실행한다.

text

  • Exp : 특정 값만큼 캐릭터의 Exp를 증가시킨다.

text

  • Health : 특정 값만큼 캐릭터의 체력을 회복시킨다.

text

  • Magnet : 월드맵에 존재하는 모든 Item을 캐릭터를 향해 이동시킨다.

text

  • ItemBox : 캐릭터를 향해 움직이지 않는 Item이다. 획득 시 ItemBoxOpenUI를 생성하며, 이를 통해 랜덤으로 무기를 획득 및 강화할 수 있다. 만약 더이상 무기를 강화하거나 획득할 수 없다면 Health 아이템을 획득한다.

text

SpawningPool

  • 캐릭터의 일정 범위에는 몬스터를 생성하는 SpawningPool이 존재하며, 랜덤으로 위치를 지정하여 몬스터를 생성한다.
  • 게임 시간이 1분이 지날 때마다 중간보스가 생성되며, 중간보스는 일반 몬스터보다 더 강한 능력치를 가진다.
  • 5분이 지날 시 보스가 생성되며, 보스가 사망 시 게임을 승리한다.

몬스터 종류

  • 근접 : 몬스터들은 기본적으로 플레이어와 접촉 시 데미지를 준다.
  • 원거리 : 특정 몬스터는 플레이어의 위치를 향해 bullet을 발사한다.
  • 중간보스 : 일반 몬스터보다 크기가 더 크고 무게가 더 나가며, 일반몬스터에서 중간보스로 인한 보정만큼 능력치가 향상된다.
  • 보스 : 다른 몬스터들과 독립적으로 존재하며, 1개 이상의 스킬을 가지고 있고 스킬들 중 랜덤으로 1개를 선택하여 사용한다. 스킬은 재사용 대기시간이 존재한다.

Boss Skill Example

  • Blink - 시간정지 후 플레이어 주변으로 이동

  • Rush - 플레이어 위치로 일직선으로 돌진. 3번 반복

개발 결과

About

Make Vampire-Survivor with Unity


Languages

Language:C# 60.6%Language:ShaderLab 33.5%Language:HLSL 5.8%