지금 구르기 회피 동작 구현중인데
void UCMovementComponent::Tumbling()
{
EnableControlRotation();
CheckFalse(bCanEvade);
float ForwardValue = OwnerCharacter->InputComponent->GetAxisValue("MoveForward");
float RightValue = OwnerCharacter->InputComponent->GetAxisValue("MoveRight");
if (ForwardValue != 0.0f || RightValue != 0.0f)
{
if (ForwardValue > 0.0f)
{
OwnerCharacter->PlayAnimMontage(EvadeMontage_F, EvadeMontage_PlayRate);
}
else if (ForwardValue < 0.0f)
{
OwnerCharacter->PlayAnimMontage(EvadeMontage_B, EvadeMontage_PlayRate);
}
else if (RightValue > 0.0f)
{
OwnerCharacter->PlayAnimMontage(EvadeMontage_R, EvadeMontage_PlayRate);
}
else if (RightValue < 0.0f)
{
OwnerCharacter->PlayAnimMontage(EvadeMontage_L, EvadeMontage_PlayRate);
}
bCanEvade = false;
GetWorld()->GetTimerManager().SetTimer(
EvadeCooldownTimer,
this,
&UCMovementComponent::ResetEvadeCooldown,
1.0f,
false
);
}
}
void UCMovementComponent::ResetEvadeCooldown()
{
bCanEvade = true;
}
여기서 키를 입력 받으면 구르고 1초 딜레이하고 다시 풀리게 하고 싶은데 타이머가 걸려있는중에 키를 또 입력하면 아예 구르기가 안되는데 어떻게 해야할까요...
Tumbling이 함수안에 앞에 다가 if (! bCanEvade) return; 넣으면 안되려나