728x90
반응형
- 개요
사용자 정의 GEContext에서 데미지를 방어한 경우 / 크리티컬 피해를 주는 경우를 캐싱하여 사용할 수 있다
따라서 이를 이용하여 각각의 경우에 맞는 메세지 UI를 팝업시키도록 로직을 수정한다
1) DamageTextComponent 클래스

SetDamageText 함수에 2개의 불리언 인자를 추가한다
각각 데미지를 방어하였는지 여부와 크리티컬 피해를 주었는지 여부를 의미한다
2) AuraPlayerController 클래스

ShowDamageNumber 함수에 2개의 불리언 인자를 추가한다
동일하게 데미지를 방어하였는지 여부와 크리티컬 피해를 주었는지 여부를 의미한다

ShowDamageNumber 함수에서 추가한 2개의 불리언 인자를
NewObject로 생성한 DamageTextComponent의 SetDamageText 함수에 넘겨준다
3) AuraAttributeSet 클래스

ShowFloatingText 함수의 로직을 위와 같이 수정한다
PlayerController의 ShowDamageNumber 함수에 2개의 불리언 인자를 전달한다
4) 언리얼 에디터

DamageTextComponent의 블루프린트의 SetDamageText 이벤트에서 2개의 불리언 변수를 전달한다
따라서 메세지 UI는 다음과 같이 팝업된다
- 공격이 방어되지 않고 + 크리티컬 피해를 주지 않은 경우 : 흰색 메세지
- 공격이 방어 + 크리티컬 피해를 주는 경우 : 노란색 메세지
- 공격이 방어되지 않고 + 크리티컬 피해를 주는 경우 : 빨간색 메세지
- 공격이 방어 + 크리티컬 피해를 주지 않은 경우 : 파란색 메세지
- 최종 실행 결과
728x90
반응형
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 몬스터 AI - 1) AI의 구성과 동작방식 (0) | 2025.09.19 |
|---|---|
| 데미지 처리 심화 - 최종) 속성 공격 / 저항의 추가와 공격 스킬의 세분화 (0) | 2025.09.14 |
| 데미지 처리 심화 - 3) 사용자 정의 AbilitySystemGlobals 클래스 & 사용자 정의 GEContext 클래스의 사용 (0) | 2025.09.12 |
| 데미지 처리 심화 - 2) NetSerialize 함수 오버라이드 & 사용자 정의 GEContext에 대한 복사 연산 허용 (0) | 2025.09.12 |
| 데미지 처리 심화 - 1) GameplayEffectContext의 사용과 사용자 정의 GEContext (0) | 2025.09.12 |