EasyCastleUNITY

드래곤 플라이트 모작 개발일지10 (아이템 효과 구현),(나중에 수정하기) 본문

2D 프로젝트 개발 일지(드래곤 플라이트 모작)

드래곤 플라이트 모작 개발일지10 (아이템 효과 구현),(나중에 수정하기)

EasyCastleT 2023. 9. 18. 18:20

효과가 있는 아이템은 총 4가지 입니다.

바로, 하이퍼 플라이트, 더블 스코어, 듀얼샷, 자석입니다. 

먼저 하이퍼 플라이트를 만들어 보겠습니다. 


하이퍼 플라이트 효과 구현

하이퍼 플라이트 아이템의 효과를 정리해보면, 다음과 같습니다.

1. 먹으면, 가속을 한다.

2. 가속을 하는 동안, 부딫치는 모든 장애물을 파괴하고 지나간다. (메테오 포함)

3. 이 가속 시간은 3초동안 지속된다. 

4. 지속시간이 종료되면, 충격파가 발생하며, 충격파와 부딫친 모든 장애물을 파괴한다. 

 

위에 정리한 효과들을 차례차례 구현해보겠습니다. 

1. 먹으면 가속한다. 

-> 보이는 것은 플레이어가 가속하는 것처럼 보이지만, 실제로는 날아오는 드래곤과, 배경의 스크롤 속도가 가속되는 것입니다. 

그래서 모든 것을 가지고 처리하는 게임 메인에서, bool 변수를 만들어, 처리해보겠습니다. 

 

먹으면 가속을 하니, 플레이어와 아이템이 부딫치면, 하이퍼 플라이트 아이템인지 파악하고 

bool 변수를 true로 만듭니다. 

bool 변수가 true가 되면, 경과시간을 체크하기 시작하고, 배경의 스크롤 스피드와, 드래곤들의 이동속도를 5배로 만듭니다. 또한 booster 라는 게임 오브젝트를 true로 만들어 활성화 시킵니다. 

이 booster가 중요합니다. 

booster의 콜라이더

booster가 활성화되며, 플레이어의 주위로 새로운 collider가 생기게 되고, 모든 장애물들은 플레이어 보다

먼저 이 콜라이더에 부딫치게 됩니다. 

따라서, 이 booster의 태그를 확인하고, Booster이면, 모든 장애물들이 죽도록 만들었습니다. 

사망 메서드

그리고 경과시간이 3초를 넘어가면, 경과시간을 0으로 초기화하고, bool 변수를 false로 만들고, 

플레이어의 위치에서, 충격파를 발생시킵니다. 

충격파의 태그는 Shock로 이 충격파와 부딫치면, 모든 장애물들이 사라지도록 설정했습니다. 

 

이렇게 하이퍼 플라이트 효과 구현을 완료했습니다. 

하이퍼 플라이트 시행 영상


더블 스코어 아이템 효과 구현

더블 스코어 아이템의 효과는 간단합니다. 

효과가 지속되는 동안, 토벌 점수를 2배로 획득합니다. 

이 아이템도, 위의 하이퍼 플라이트와 마찬가지로 bool 변수를 통해 상태를 변화시키면 작동합니다.

사냥 포인트 계산

보다시피 더블 상태면, 2배가 더해지도록 만들었습니다. 

그리고 지속시간은 10초로, 10초동안 토벌점수가 2배로 증가합니다. 

그리고 아이템을 먹으면, 지속이 되고 있다는 표시로, 별 이펙트가 나오며 회전합니다. 

이렇게 더블 스코어 아이템 구현을 마쳤습니다. 


듀얼샷 아이템 구현

 

BulletGenerator Shoot 메서드 수정

이 아이템도 bool 변수를 응용합니다. 

메인에서, bool 변수가 true가 되면, 2발을 발사하도록 만들었습니다. 

플레이어는 기본 발사하는 장소와, 듀얼샷일때 총알을 발사하는 부분까지 해서 총3가지 총알 발사 위치를 가지고 있습니다.

InitPos 3개
발사 부분

아이템을 먹고 10초동안 총알이 2개로 발사됩니다. 

듀얼샷 결과

이렇게 듀얼 샷 효과 구현을 마쳤습니다. 


자석 아이템 구현

아이템들의 레이어를 전부 Item으로 변경하고, OverlapCircleAll을 통해, Item이라는 레이어를 가지고 있는 게임오브젝트를 모두 검출하고, 검출한 아이템들을 Lerp 시켜, 플레이어 위치로 오게 하였습니다. 

이 자석 아이템도 bool 변수를 이용하여, 10초동안 유지되도록 하였습니다.

옆에 달려있는 자석 아이콘은, 자석 상태임을 나타내는 모습입니다. 

이렇게 자석 아이템 효과 구현을 마쳤습니다.