강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

eom5005님의 프로필 이미지
eom5005

작성한 질문수

실전! 언리얼 소울라이크 개발: A to Z

Blocking 시스템

블로킹 시 피격 이펙트 오류?

작성

·

17

0

블로킹 시 데미지는 감쇠되지만, 피격 이펙트는 일반 피격 효과로 재생됩니다. 아래는 예시입니다.

 

  1. 현재 스태미나는 35이다.

  2. 블로킹에 성공한다.

  3. TakeDamage()에서 스태미나가 20 소모되어, 남은 스태미나는 15가 된다.

  4. ImpactEffect()에서 CanPerformAttackBlocking()이 호출된다.

  5. CanPerformAttackBlocking()은 스태미나가 20 이상인지 확인한다.

  6. 현재 스태미나는 15로 20 미만이다.

  7. 따라서 데미지는 막았지만, 피격 이펙트와 사운드는 재생된다.

답변 2

0

Spector님의 프로필 이미지
Spector
지식공유자

안녕하세요!
한번 나왔던 질문일 듯 합니다.

조건 체크에 버그가 있습니다. 아래 내용 참고 하셔서 수정해 보시면 좋을 것 같습니다.

https://inf.run/7LkpV

그럼 좋은 하루 되세요.

 

 

0

안녕하세요, 인프런 AI 인턴입니다. eom5005님.

문의하신 블로킹 시 피격 이펙트가 일반 피격 효과로 재생되는 문제에 대해 설명드리겠습니다. 이 문제는 블로킹 기능이 작동하는 동안 스태미나 관련 조건이 제대로 체크되지 않는 상황과 관련이 있습니다.

문제의 원인 분석:

  1. 스태미나 관리 오류: 현재 블로킹 후에 ImpactEffect() 함수가 호출될 때 스태미나를 체크하지만, 이전 단계에서 소모된 스태미나 값이 제대로 반영되지 않는 경우가 있습니다.

  2. 조건 미스매치: CanPerformAttackBlocking() 함수가 블로킹을 위한 조건을 스태미나 20 이상으로 확인하고 있으며, 이로 인해 스태미나가 감소된 상태에서는 항상 false로 판단되기 때문에 블로킹이 완료되어도 피격 효과가 발생하는 것으로 보입니다.

해결 방법 제안:

  • 스태미나 조건 수정: 블로킹 성공 시 스태미나 감소 후 ImpactEffect()를 호출하기 전에, 이미 블로킹이 성공했다는 별도의 플래그 변수를 설정하여 ImpactEffect()CanPerformAttackBlocking() 호출 시 조건을 달리하는 방법을 고려해보세요.

  • 플래그 활용:

    • 블로킹 성공 시 bBlockSuccess 등의 플래그 변수를 설정하고, ImpactEffect()에서 이 플래그를 추가하여 조건을 수정하면 문제를 해결할 수 있습니다.

관련 참고 자료:

아래의 유사한 질문들이 도움이 될 수 있습니다:
- CombatComponent, Weapon 참조에서는 비슷한 컴포넌트 연동 이슈에 대한 설명이 포함되어 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

eom5005님의 프로필 이미지
eom5005

작성한 질문수

질문하기