팀프로젝트를 처음으로 시작을 했다.
4명의 팀원이 아이디어를 모아서 RPG 장르를 생각했다.
첫프로젝트 지만 RPG를 선택해서 많은 공부가 될꺼 같았고 또 최선을 다해야 완성을 시킬수 있을꺼 같았다.
전체적인 게임 진행 방식은
메인 게임 > 무한의방 > 메인 게임 클리어
식으로 메인 게임에서 죽으면 무한의 방에서 파밍을 해서
또 다시 메인 게임의 클리어를 하기 위해 게속해서 플레이 하는 게임을 생각 해봤다.
내가 맡은 역할은
플레이어의 이동,공격,스킬 , 플레어의 애니메이션
콤보 시스템, 아이템 종류 , 몬스터와 상호 작용
이렇게 플레이어의 위주로 맡았다.
시작으로 캐릭터의 에셋을 찾아봤지만 잘없는 관계로 더미 에셋으로 먼저 플레이어를 만들어서 기능을 구현을 최우선으로 했다.
콤보 시스템 구현
이동 구현
플레이어와 몬스터 상호작용 (Hit, Dead , Stun)
스킬 구현
아이템 구현
🔴 콤보시스템 구현
콤보시스템엔 여러 방법이 존재했다.
- Sub-State Machine을 활용해서 Triger on,off를 해주는 콤보
- bool을 활용한 true,false 사용 콤보
- Time을 쌓아서 일정 초에 만났을때 발동 float 콤보
- 이렇게 3가지 정도를 구현 해보면서 나는 디아블로3의 느낌을 내고 싶어서 왼쪽 마우스버튼을 꾹 눌렀을때 float 값이(Time.dletaTime * 애니메이션 속도) 증가 하면서 일정 float 값에 도달했을때 애니메이션이 실행 되도록 하고 싶었다.
마우스 버튼을 때는 순간 float의 값은 0으로 초기화가 되는 형식으로 만들었다.
일단 bool값을 하나 만들어서 mouseButton 의 입력을 알수있도록 하고 입력시 처음 콤보로 들어가도록 구현을 해보았다.
SetBool(isAttack , true)
뛰면서도 공격이 가능하게 run쪽에도 연결을 시켜주었다.
🔴 스킬 구현
- 스킬은 언제나 발동 할수있게 Any State에서 할수있게 두었다.
q 키를 입력시 하던 공격을 멈추고 Q 스킬을 실행 시킨다. 그리고 isQsKILLCool 이 트루가 될때만 쓸수있게 해두었고,
쿨타임은 코루틴으로 사용시 돌게 해두었다.