강의

멘토링

로드맵

Inflearn brand logo image

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

Lee jae seung님의 프로필 이미지
Lee jae seung

작성한 질문수

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

방어 시스템에 관해서

해결된 질문

작성

·

98

·

수정됨

0

방어 시스템까지 강의를 들었는데 몇가지 문제점이 있습니다.

첫번째는 해결할 수 있을 거 같은데 두번째는 어떻게 해야 하나요?

  1. 방어로 모든 스태미나를 소모했을 때 스태미나 재생이 안되는 문제
    - 스태미나 재생 코드만 연결하면 해결할 수 있을 것 같습니다.

  2. 방어를 한 다음 공격을 수행한 다음 다시 방어를 취하면 실제 데미지 처리는 0이지만


    이펙트와 사운드는 Hit와 동일하게 재생되는 문제

(수정)

  • 여러번 테스트 해봤을 때 어떤 경우에는 저 현상이 발생하고 어떤 경우에는 정상적으로 보이기도 해서


    저의 실수인지 잘 모르겠네요,, 링크의 동영상을 볼 수 있는지 잘 모르겠지만 제가 테스트해본 영상입니다.

25초~35초 구간 정도 보시면 될 것 같습니다. (빨간색 로그에 TotalDamage->0.0 / UI 확인)

 https://youtu.be/umVB9mTpD3g

답변 4

1

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

제가 코드를 좀 더 살펴보니 스테미나가 마지막 한번 방어 할 만큼만 남아 있을 경우 말씀하신 현상이 발생할 수 있을 것 같습니다.

ImpactEffect 함수와 HitReact 함수의 if문 조건을 아래 처럼 바꿔 주시면 될 것 같습니다.

image.png

 

image.png

 

원인은 아래 코드에서 스테미나를 차감하기 때문입니다. 따라서 마지막 한 번 사용할 수 있는 스테미나만 남았을 때, ImpactEffect 함수와 HitReact 함수의 if 조건에서 CanPerformAttackBlocking() 함수로 체크하게 되면 스테미나 부족으로 인해 해당 현상이 발생할 수 있습니다.

image.png

 

0

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

보내주신 동영상만으로는 어떤 문제인지 정확히 파악하기 어렵네요 ㅠㅠ

말씀드린 것처럼, 제공해 드린 완성 프로젝트에서는 특이점을 발견하지 못했습니다.

완성 프로젝트와 코드를 꼼꼼히 비교해보시면서 확인해 보셔야 할 것 같습니다.

참고로, 방패 방어 시에는 스테미나가 소모되며, 방어 자세를 취하더라도 필요한 스테미나가 부족하면 방어에 실패합니다. 또한, 적과 정면으로 마주보고 있어야 방어가 가능합니다.

Lee jae seung님의 프로필 이미지
Lee jae seung
질문자

저만의 문제 인 것 같습니다. 나중에 더 명확한 케이스나 원인을 알아내면 질문 남기겠습니다.

답변해주셔서 감사합니다.

0

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

안녕하세요.

말씀해주신 문제들을 확인해 보았으나, 현재로서는 두 가지 모두 특이점을 발견하지 못했습니다.

방패 방어로 스테미나를 전부 소모한 후에도 정상적으로 재충전되는 것을 확인했습니다.

또한, 방패 방어 후 공격, 그리고 다시 방패 방어를 시도했을 때도 말씀하신 문제는 발생하지 않았습니다.

 

혹시 특정 상황에서만 발생하는 문제인지 좀 더 자세히 알려주시면 확인하는 데 도움이 될 것 같습니다.

 

0

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

문의하신 방어 시스템에 관련된 문제를 해결하기 위해 몇 가지 방법을 제안드립니다.

  1. 스태미나 재생 문제:

    • 스태미나가 0이 될 경우, 스태미나 재생을 위한 조건을 잘 점검해 보셔야 합니다. 스태미나가 0일 때도 재생이 시작되도록 로직을 수정하거나, 특정 상태에서 스태미나 재생이 멈추는지 확인해보세요.
    • 스태미나 재생 코드가 제대로 연결되어 있는지를 확인하고, 스태미나가 0이 되었을 때 일정 시간 지연 후 재생이 시작되도록 설정하는 것도 방법입니다.
  2. 방어 후 공격 시 이펙트와 사운드 문제:

    • 방어 이후 공격 모드로 전환한 후 다시 방어했을 때, 실제 데미지 처리가 없어야 하는 효과적인 조건 검토가 필요합니다.
    • 이 경우, 이펙트나 사운드가 재생되지 않도록 방어 상태와 실제 데미지 상태를 명확히 구분하여 관리해야 합니다. 예를 들어, 방어 중일 때는 데미지 이펙트와 사운드를 재생하지 않도록 조건을 추가할 수 있습니다.
    • Hit에 대한 이펙트와 사운드가 조건 없이 글로벌하게 적용되는지 확인해보고, 이를 방어와 일반 히트 상태에 따라 다르게 처리하도록 방어 조건을 추가로 확인하거나, 특정 Transform이나 State 상태에서 이펙트와 사운드가 재생되지 않도록 추가 검토해보세요.

비슷한 문제를 다룬 기존 Q&A가 있으니 참고하시면 도움이 될 수 있습니다:

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

Lee jae seung님의 프로필 이미지
Lee jae seung

작성한 질문수

질문하기