관리 메뉴

Unwound Developer

Vampire Survivors 따라해보기 - 확률형 등장 본문

Unity/Unity, C#

Vampire Survivors 따라해보기 - 확률형 등장

unwind 2022. 2. 15. 16:53
반응형

저번에 만들던 뱀파이어 서바이버를 따라해본 게임입니다.

일단 애니메이션을 뱀파이어 게임처럼 칼로 베는 애니메이션을 못 구해서

저 폭발하는 모양의 애니메이션이라도 추가해봤습니다.

 

소리도 추가했는데, 소리는 녹화가 안되었네요.

 

몬스터를 잡으면 경험치 구슬이나오고, 저 구슬은 15의 경험치를 제공합니다.

경험치가 100이되면 플레이어가 레벨업을 하고, 영상의 마지막 부분처럼 효과를 한가지 얻게됩니다.

 

효과는 여러가지가 있는데, 랜덤으로 등장합니다. 영상에선 체력 회복이 나왔구요.

 

이 외에 제가 생각했을 때 추가해야될 내용은 다른 종류의 몬스터 출현과

더 다양한 공격들, 배경 맵의 확장 정도가 일단 필요할 것 같네요.

 


 

추가한 내용이 좀 많아서 모두 정리하긴 어려울 것 같네요.

플레이어 스크립트에서 경험치를 얻는 메소드와 레벨업을 하는 메소드입니다.

 

경험치 구슬도 하나의 오브젝트로 만들어서 몬스터가 죽을때 그 자리에 생성(Instantiate메소드)하도록 했습니다.

그리고 경험치 구슬엔 다음과 같은 스크립트를 주었어요.

플레이어를 따라가도록 하고, 플레이어와 닿으면 경험치 증가.

 

그리고 위의 플레이어 스크립트를 보면, 레벨업 시에 게임매니저 클래스의 StopScene 메소드를 호출해요.

GameManager

time.timescale을 0으로 만들어줌으로 인해 모든 오브젝트들이 정지해요.

그리고, Button1 오브젝트를 활성화 시킵니다.

 

Button 스크립트 1
Button 스크립트 2

버튼이 여러가지 옵션 중에서 랜덤으로 한가지 옵션으로 나타나게 하기 위한 코드인데,

좀 난잡하게 구현한거같네요.

 

우선, 1부터 100까지 랜덤으로 숫자를 하나 받습니다.

각 옵션마다 확률을 숫자로 주는데 이런 식입니다.

 

체력회복을 20%의 확률로 등장시키고 싶으면 체력회복 변수를 healPercentage라는 변수에 20을 할당합니다.

최대 체력 증가를 40%의 확률로 등장시킨다면 addMaxPercentage이라는 변수에 60을 할당합니다.

새로운 공격의 등장을 40%의 확률로 등장시킨다면 addNewAttack이라는 변수에 100을 할당합니다.

 

이제 랜덤으로 받은 변수가 1~20 사이라면 체력회복을, 21~60 사이라면 최대체력증가, 61~100사이라면 공격 추가

이런식으로 확률적으로 등장하는 시스템을 구현했습니다.

보통 이런식으로 하진 않을것 같네요...

 

그리고, 캐릭터 주위를 위성처럼 돌면서 공격하는 오브젝트도 만들어봤는데 캐릭터가 이동하면 회전이 이상해지네요..

 아직 해결하지 못했습니다.

 

일단은 여기까지인데, 뭔가 의문이 드네요.

이렇게 연습을 하는게 맞는지 잘 모르겠습니다.

뭔가 진전도 없는 것 같고, 성취감도 들지 않네요.

다른 방향으로 만들어 봐야겠습니다.

반응형