Unreal UI - 적 정보가 담긴 위젯 띄우기

2025. 4. 10. 22:45·Unreal5 프로젝트 다이어리

1. 더미를 공격시 Pitch(위아래) 로 한번 흔들거림

2. 더미를 공격시 더미가 빨간색으로 잠시 바꼇다가 돌아옴

3. 더미르 공격시 더미의 위쪽에서 데미지UI가 나옴

4. 더미를 공격시 플레이어UI 위쪽에서 더미의 HP가 나옴

4번 적을공격하면 때린객체의 HP 프로그래스바 UI 그리고 이름이 나오게 해보겠다

 

구상도이다 더미 (이름) 피통 프로그래스바, 그리고 현재HP / 전체 HP 이렇게 출력되도록 해보겠다

사용할 적의 위젯부터 만들어주겠다 

userwidget을 부모로한 EnemyUIDisplayWidget을 만들어주었다

이렇게 총 3가지를 표시해보겠다

(앵커 설정, 변수이름 설정도 전부다 꼭 해주도록 하자)

 

일단 해당 위젯을 띄워보도록 하자

뷰포트는 캐릭터화면에 띄워진다

 

플레이어의 뷰포트상에 잘 나온다

허수아비에서 이름, 그리고 hp를 설정해주고

지금 텍스트와 프로그래스바 사이가 빈공간이없으니 Spacer 도 추가해줬다

그러면 지금 보이고있는 display에 enemy 즉 더미의 값들을 넣어보도록 하자

 

위젯의 값들을 바인드해준다

name, currentHP와 maxHP를 인자값으로 받아와서 string으로 값을 업데이트 해주는 함수이다

 

우리는 화면에 때린 객체의 ui를 한마리만 띄울것이기때문에

아무리 여러마리를 때려도 마지막으로 떄린 객체의 한마리만 ui를 뷰포트상에 띄울생각이다

그러면 독립적으로 관리하는게 아니고 공유된 포인터로 현재 떠 있는 UI 추적 해야하기때문에

 

우리는 정적변수를 사용하면된다

uiDisplayWidget에서

subclassof와 정적변수 enemyUIDisplayWidgetInstance를 선언
정적변수를 사용할려면 이렇게 헤더 밑에 넣어주면된다

UEnemyUIDisplayWidget* AHitTestCrow::enemyUIDisplayWidgetInstance = nullptr;은

정적변수의 선언 이다

모든 더미의 공유용 ui포인터이다

 

화면에 현재 떠 있는 유일한 UI를 나타내는 포인터로 쓰는것이다.

뷰포트상에 띄워져있으면 인스턴스를 잠시 숨겨준뒤 위젯을 업데이트 시켜주는 내용이다

+

currentHp가 음수로 내려가지않게 0을 최대값으로 만들어주자

 

 

이제 각각의 객체가 각각의 인스턴스를 가지고있고 때린 객체의 한개의 ui만 표시된다

이제 디테일을 추가해보자

마지막으로 때린 객체의 공격이 3초동안 없으면 ui를 지워보도록하겠다

타이머핸들과 정적변수를 .h에추가해주고

정적변수 currentWidgetOwner를 선언

더미가 누구인지 알기위해

currentWidgetOwner = this;를 해주고

타이머를 사용해서 3초뒤에 띄워진 ui를 삭제한다

+ui도 좀 색상,모양도 변경해줬다

3초뒤에 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
'Unreal5 프로젝트 다이어리' 카테고리의 다른 글
  • Unreal - 캐릭터 광역공격 만들기
  • Unreal - DataTable로 스탯 관리하기
  • Unreal UI - 데미지 표기(HUD)
  • Unreal 적 - 피격 리액션(경직) 구현하기
lucodev
lucodev
커피와 노트북 그리고 개발
  • lucodev
    루코 개발테이블
    lucodev
  • 전체
    오늘
    어제
    • 분류 전체보기 (119) N
      • Unreal5 프로젝트 다이어리 (73)
      • Unreal5 프로젝트 다이어리2 (2)
      • Unreal 팁 (8)
      • Unreal 디버깅 (8)
      • C++ 프로그래머스 다이어리 (21) N
        • Stack (3)
        • Hash (4) N
        • Heap (2) N
        • Sort (1) N
      • 코드 개인보관함 (7)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 링크

  • 공지사항

  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 태그

    언리얼 비헤이비어트리
    unreal 컷씬
    언리얼 스폰
    unreal sequence
    언리얼 spawn
    unreal 로딩
    unreal look at
    언리얼 페이드 인
    언리얼 behavior tree
    unreal 시퀀스
    언리얼 시퀀스
    언리얼 페이드 아웃
    언리얼 foot step
    언리얼
    언리얼 로딩창
    언리얼 컷씬
    unreal loading
    언리얼 behaviortree
    언리얼 로딩
    언리얼 look at
  • hELLO· Designed By정상우.v4.10.3
lucodev
Unreal UI - 적 정보가 담긴 위젯 띄우기
상단으로

티스토리툴바