void APSCharacter::Dash(float DashDistance)

{

if (!OnDash) {

GetCharacterMovement()->BrakingFrictionFactor = 0.f;

LaunchCharacter(GetActorForwardVector() * DashDistance, true, false);

GetCapsuleComponent()->SetCollisionEnabled(ECollisionEnabled::NoCollision); // ๋Œ์ง„๋™์•ˆ ์ถฉ๋ŒํŒ์ • x ์ฝœ๋ฆฌ์ „ ์ฑ„๋„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์„œ ๋ชน๋งŒ ํ†ต๊ณผํ•˜๊ฒŒ๋”

OnDash = true;

GetWorldTimerManager().SetTimer(UnusedHandle, this, &APSCharacter::StopDashing, 0.1f, false); // 0.1์ดˆ๋™์•ˆ ์บ๋ฆญํ„ฐ Launch

}

}

void APSCharacter::StopDashing() {

GetCharacterMovement()->StopMovementImmediately();

GetCapsuleComponent()->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics); // ์ฝœ๋ฆฌ์ „ ์žฌํ™œ์„ฑํ™”

GetWorldTimerManager().SetTimer(UnusedHandle, this, &APSCharacter::ResetDash, 0.2f, false);

GetCharacterMovement()->BrakingFrictionFactor = 2.f;

}

void APSCharacter::ResetDash() {

OnDash = false;

}



์บ๋ฆญํ„ฐ ํด๋ž˜์Šค์—์„œ ๊ตฌํ˜„ํ•œ ๋Œ€์‰ฌ ๊ธฐ๋Šฅ์ธ๋ฐ


๋Œ€์‰ฌ๋ฅผ ํ•˜๋Š”๋™์•ˆ ๋ชน์ด๋ž‘ ๋ถ€๋”ชํžˆ์ง€ ์•Š๊ฒŒํ•˜๋ ค๊ณ  ๋…ธ์ฝœ๋ฆฌ์ „ ํ–ˆ๋‹ค๊ฐ€ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์ด๋Ÿฌ๋ฉด ๋ฒฝ๋„ ํ†ต๊ณผํ•ด์„œ ๋งต ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€์ง€๋”๋ผ๊ตฌ์š”


๊ทธ๋ž˜์„œ Enemy ์ฝœ๋ฆฌ์ „ ์ฑ„๋„์„ ๋”ฐ๋กœ ๋งŒ๋“ค๊ธดํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๋Š” ๊ทธ๊ฑธ ์–ด๋–ป๊ฒŒ ์จ๋จน๋Š”์ง€๋ฅผ ๋ชจ๋ฅด๊ฒ ๋„ค์š” ๊ฒ€์ƒ‰ํ•ด๋„ ์ฐพ๊ธฐ๊ฐ€ ํž˜๋“ฌ..