플레이어가 암살을 위해 벽에 밀착해서 이동할 수 있는 기능을 구현해보자.
해당 기능과 관련된 내용은 모두 CoverMovementComponent
에서 관리한다.
c
를 입력하면 전방에 벽이 있는지 확인하고, 벽이 있다면 벽위치로 이동하고 좌, 우로만 움직일 수 있게 한다.
오른쪽 코너에서는 더 이상 오른쪽으로 움직일 수 없고, 왼쪽 코너에서는 더 이상 왼쪽으로 움직일 수 없다.
IsCover = true
IsCover = false
Cover상태에서 Montage를 실행하는 벽에서 벗어난 상태에서 IsCover = true
가 지속되는 문제가 있다. 이를 해결하기 위해 Tick에서 등 뒤에 벽이 있는지 확인한다.
플레이어가 Shift
를 눌러 움직임 키를 입력하게 되면 벽에서 벗어나게 된다.
IsCover = false
if(Character->GetCharacterMovement()->MaxWalkSpeed > 300.f)
{
DisableCover();
}