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 ์ฝ๋ฆฌ์ ์ฑ๋์ ๋ฐ๋ก ๋ง๋ค๊ธดํ๋๋ฐ ๋ฌธ์ ๋ ๊ทธ๊ฑธ ์ด๋ป๊ฒ ์จ๋จน๋์ง๋ฅผ ๋ชจ๋ฅด๊ฒ ๋ค์ ๊ฒ์ํด๋ ์ฐพ๊ธฐ๊ฐ ํ๋ฌ..
์ฝ๋ฆฌ์ ์ฑ๋ ์ค์ ๋ฒ์์ด
์ฝ๋ฆฌ์ ํ๋ฆฌ์ ใฑใฑ
https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Physics/Collision/Reference/
๊ณต์๋ฌธ์์
๋กํ๋์๊ตฌ๋ง
๊ทธ๋๊น Enemy๋ผ๋ ์๋ก์ด ์ฝ๋ฆฌ์ ํ๋ฆฌ์ ์ ๋ง๋ค๊ธดํ๋๋ฐ ๋์ฌ๋ฅผ ํ๋ ๋์์๋ ๊ทธ ํ๋ฆฌ์ ์ ๊ฐ์ง ์กํฐํ๊ณ ๋ง ์ถฉ๋์ด ์์ผ์ด๋๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์. ๋ด๊ฐ ์ํ๋๊ฑด ์ ์ฝ๋์์ ๊ทธ๋ฅ ๋ ธ์ฝ๋ฆฌ์ ํ๋ฉด ๋ชจ๋ ์กํฐ๋ ์ถฉ๋์ ์ํ๋๊ฑด๋ฐ ํน์ ์ฑ๋ํ๊ณ ๋ง ์ถฉ๋์ด ์์ผ์ด๋๊ฒ๋ ํ๊ณ ์ถ์๊ฑฐ๋๊น
https://youtu.be/O8aV86Gdce8?si=v4LbwUvVKVxewtUd
์์งํ ์กด๋ ํท๊ฐ๋ฆฌ๊ธดํจ
https://youtu.be/vzZGwbf_lsQ?si=oFbpgMcm8zNNlCQ-
์ด์ฌํ ์ฐพ์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค ใ ใ ์ง์ง ์๊ฐํ๊ฒ๋ณด๋ค ์ข ๋ณต์กํ๋ค์ ์ ๋ธ๋ฃจํ๋ฆฐํธ๋ก ์งค์๋ ์๋๊ฑฐ๋ผ์ ์ ๊ฒ..
SetCollisionEnabled ๋ง๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํด๋ณด์
์ด๊ฑฐ ๋งํ๋๊ฑฐ ๊ฐ์๋ฐ? ์ฝ๋ฆฌ์ ํ๋ฆฌ์ ์ธ ๊ฐ, Enemy, Player, DashPlayer๋ฅผ ์๋ก ๋ง๋ค์ด์ฃผ๊ณ Enemy๊ฐ Player๋ Blockํ๊ฒ ํ๊ณ DashPlayer๋ Ignoreํ๊ฒ ๋ง๋ ๋ค์์ ๋์ฌ ์์ํ ๋ ์ฝ๋ฆฌ์ ํ๋ฆฌ์ ์ DashPlayer๋ก ๋ฐ๊ฟ์ฃผ๊ณ ๋์ฌ๊ฐ ๋๋๋ฉด ๋ค์ Player๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๋์ง ์์๊น?
https://docs.unrealengine.com/5.3/en-US/add-a-custom-object-type-to-your-project-in-unreal-engine/