지금까지 만든 전투 시스템을 보면 칼과 단검(암살) 두 가지가 있다. 민들고있는 게임이 암살에 집중된 게임이니, 암살을 위한 무기를 추가하기로 했다. 참고하고 있는 Assassin's creed를 보면 포물선을 그리며 날아가는 투사체와 일자로 날아가는 투사체가 있다. 모두를 구현해보자.
먼저 두 종류의 발사체를 만들어야한다. 원래 actor를 생성해 hit될 때 공격을 실행하는 방식과 히트스캔 방식을 사용하려 하였다. 하지만 그렇게 설계하다보니 부모 클래스의 크기가 작아지고(포폴용이라 상속관계를 보여주고 싶었음) 히트스캔방식일때 객체가 직접 날아가는게 아니다보니 FPS느낌이 강해져 모두 객체를 생성하는 방식으로 만들어주었다.
IsZoom = true
일 때 visible
상태로 보여줌Takedamage
함수를 호출하여 공격PredictProjectilePath
사용해 포물선 Spline의 Point를 구할 수 있음SplineMeshComponent
를 그려줌Tick
으로 그리고 지우고를 반복SuggestProjectileVelocity_CustomArc
함수를 사용하면 시작지점과 끝지점, 발사각도를 설정해 발사를 위한 속도를 구할 수 있음CurrentProjectileComponent
를 통해 현재 캐릭터가 발사할 발사체 컴포넌트를 선택가능CurrentProjectileComponent
를 Observer패턴으로 만들어 값이 변경될 때 마다 해당 내용을 Broadcast