언리얼 엔진 - 게임 프로젝트/GAS 프레임워크 RPG 프로젝트

데미지 처리 심화 - 4) 처리된 데미지에 따라 다른 UI 출력

monstro 2025. 9. 13. 16:47
728x90
반응형

- 개요

사용자 정의 GEContext에서 데미지를 방어한 경우 / 크리티컬 피해를 주는 경우를 캐싱하여 사용할 수 있다

따라서 이를 이용하여 각각의 경우에 맞는 메세지 UI를 팝업시키도록 로직을 수정한다

 

1) DamageTextComponent 클래스

 

SetDamageText 함수에 2개의 불리언 인자를 추가한다

각각 데미지를 방어하였는지 여부와 크리티컬 피해를 주었는지 여부를 의미한다

 

2) AuraPlayerController 클래스

 

ShowDamageNumber 함수에 2개의 불리언 인자를 추가한다

동일하게 데미지를 방어하였는지 여부와 크리티컬 피해를 주었는지 여부를 의미한다

 

 

ShowDamageNumber 함수에서 추가한 2개의 불리언 인자

NewObject로 생성한 DamageTextComponentSetDamageText 함수에 넘겨준다

 

3) AuraAttributeSet 클래스

 

ShowFloatingText 함수의 로직을 위와 같이 수정한다

PlayerControllerShowDamageNumber 함수에 2개의 불리언 인자를 전달한다

 

4) 언리얼 에디터

 

DamageTextComponent의 블루프린트SetDamageText 이벤트에서 2개의 불리언 변수를 전달한다

따라서 메세지 UI는 다음과 같이 팝업된다

  • 공격이 방어되지 않고 + 크리티컬 피해를 주지 않은 경우 : 흰색 메세지
  • 공격이 방어 + 크리티컬 피해를 주는 경우 : 노란색 메세지
  • 공격이 방어되지 않고 + 크리티컬 피해를 주는 경우 : 빨간색 메세지
  • 공격이 방어 + 크리티컬 피해를 주지 않은 경우 : 파란색 메세지

 

- 최종 실행 결과

 

728x90
반응형