1. 더미를 공격시 Pitch(위아래) 로 한번 흔들거림
2. 더미를 공격시 더미가 빨간색으로 잠시 바꼇다가 돌아옴
3. 더미르 공격시 더미의 위쪽에서 데미지UI가 나옴
4. 더미를 공격시 플레이어UI 위쪽에서 더미의 HP가 나옴
4번 적을공격하면 때린객체의 HP 프로그래스바 UI 그리고 이름이 나오게 해보겠다
사용할 적의 위젯부터 만들어주겠다
userwidget을 부모로한 EnemyUIDisplayWidget을 만들어주었다
이렇게 총 3가지를 표시해보겠다
(앵커 설정, 변수이름 설정도 전부다 꼭 해주도록 하자)
일단 해당 위젯을 띄워보도록 하자
뷰포트는 캐릭터화면에 띄워진다
허수아비에서 이름, 그리고 hp를 설정해주고
지금 텍스트와 프로그래스바 사이가 빈공간이없으니 Spacer 도 추가해줬다
그러면 지금 보이고있는 display에 enemy 즉 더미의 값들을 넣어보도록 하자
위젯의 값들을 바인드해준다
name, currentHP와 maxHP를 인자값으로 받아와서 string으로 값을 업데이트 해주는 함수이다
우리는 화면에 때린 객체의 ui를 한마리만 띄울것이기때문에
아무리 여러마리를 때려도 마지막으로 떄린 객체의 한마리만 ui를 뷰포트상에 띄울생각이다
그러면 독립적으로 관리하는게 아니고 공유된 포인터로 현재 떠 있는 UI 추적 해야하기때문에
우리는 정적변수를 사용하면된다
uiDisplayWidget에서
UEnemyUIDisplayWidget* AHitTestCrow::enemyUIDisplayWidgetInstance = nullptr;은
정적변수의 선언 이다
모든 더미의 공유용 ui포인터이다
화면에 현재 떠 있는 유일한 UI를 나타내는 포인터로 쓰는것이다.
뷰포트상에 띄워져있으면 인스턴스를 잠시 숨겨준뒤 위젯을 업데이트 시켜주는 내용이다
+
이제 디테일을 추가해보자
마지막으로 때린 객체의 공격이 3초동안 없으면 ui를 지워보도록하겠다
타이머핸들과 정적변수를 .h에추가해주고
더미가 누구인지 알기위해
currentWidgetOwner = this;를 해주고
+ui도 좀 색상,모양도 변경해줬다
이제 더미를 때리면 각각의 더미 인스턴스의 각각의 ui를 한개만 잘 뷰포트에 잘 출력된다
1. 더미를 공격시 Pitch(위아래) 로 한번 흔들거림
2. 더미를 공격시 더미가 빨간색으로 잠시 바꼇다가 돌아옴
3. 더미르 공격시 더미의 위쪽에서 데미지UI가 나옴
4. 더미를 공격시 플레이어UI 위쪽에서 더미의 HP가 나옴
'Unreal5 프로젝트 다이어리' 카테고리의 다른 글
Unreal - 캐릭터 광역공격 만들기 (0) | 2025.04.11 |
---|---|
Unreal - DataTable로 스탯 관리하기 (0) | 2025.04.11 |
Unreal UI - 데미지 표기(HUD) (1) | 2025.04.10 |
Unreal 적 - 피격 리액션(경직) 구현하기 (0) | 2025.04.08 |
Unreal 캐릭터 - Overlap이벤트, 공격위치 판별하기 (0) | 2025.04.06 |