Unreal - 던전 클리어 위젯 만들기

2025. 5. 25. 13:23·Unreal 프로젝트 다이어리/첫번째 프로젝트

던전을 클리어했을때 던전에서 플레이했던 내용을 기록하는 클리어 위젯을 만들어보도록하겠습니다

이미띄워진 클리어%를 나타내는 AI에 따로 캔버스패널을 두고 클리어가되면 해당 캔버스패널이 나타나도록 해보겠습니다

일단 사용할 Widget을 만들어주겠습니다

VerticalBox를 루트로 두고 하이어라키에 HorizentalBox를 각각 두개씩 총 4행 2열 형식으로 UI를 구성하였습니다

구성할 내용은 클리어타임, 쓰러뜨린 몬스터수, 피격횟수, 부활횟수 총 4개입니다

 

각각 클리어타임, 킬카운트, 피격횟수, 부활횟수에 대한 변수값을 바인드해줍니다

 

해당 변수값들로 text를 set하는 함수를 만듭니다

void UDungeonClearPercentWidget::SetClearPanelNumber(int32 clearTime, int32 killCount, int32 attackCount, int32 reviveCount)
{
	if (CanvasPanel_Clear)
	{
		CanvasPanel_Clear->SetVisibility(ESlateVisibility::Visible);
	}
	if (TextBlock_ClearTime)
	{
		int32 hour = clearTime / 3600;
		int32 minute = (clearTime % 3600) / 60;
		int32 second = clearTime % 60;
		//nn:nn:nn
		FString timeString = FString::Printf(TEXT("%02d : %02d : %02d"), hour, minute, second);
		TextBlock_ClearTime->SetText(FText::FromString(timeString));
	}
	if (TextBlock_KillCount)
	{
		TextBlock_KillCount->SetText(FText::AsNumber(killCount));
	}

	if (TextBlock_AttackCount)
	{
		TextBlock_AttackCount->SetText(FText::AsNumber(attackCount));
	}

	if (TextBlock_ReviveCount)
	{
		TextBlock_ReviveCount->SetText(FText::AsNumber(reviveCount));
	}

}

 

 

게임인스턴스에서 각각 변수값을 누적시켜 카운팅하는 함수를 만듭니다

void UStatGameInstance::setDungeonSkeletonDieCountting()
{
	skeletonDieSumCount++;
}

void UStatGameInstance::setDungeonSkeletonAttackCounting()
{
	skeletonHitCounting++;
}

void UStatGameInstance::setDungeonReviveCounting()
{
	reviveCount++;
}

 

 

위젯을 띄워야할때 해당 게임인스턴스에서 값을 받아와 매개변수로 넘깁니다

int32 clearTimeInt = FMath::FloorToInt(myInstance->totalClearTime);
int32 SumkillCount = myInstance->skeletonDieSumCount;
int32 hitCount = myInstance->skeletonHitCounting;
int32 reviveCount = myInstance->reviveCount;
percentWidget->SetClearPanelNumber(clearTimeInt, SumkillCount, hitCount, reviveCount);

 

 

여러가지 디테일적인 애니메이션을 추가해주었습니다

 

 

 

'Unreal 프로젝트 다이어리 > 첫번째 프로젝트' 카테고리의 다른 글

Unreal - 위젯에 동영상 파일 추가하기 (인트로)  (0) 2025.05.30
Unreal - 새로하기, 이어하기 메인메뉴 만들기  (0) 2025.05.29
Unreal - 플레이어 리스폰  (0) 2025.05.24
Unreal - 던전진행도 위젯 만들기 (스칼라 파라미터 조절하기)  (0) 2025.05.23
Unreal - 자동 흡수되는 확률형 드롭 아이템 만들기  (0) 2025.05.22
'Unreal 프로젝트 다이어리/첫번째 프로젝트' 카테고리의 다른 글
  • Unreal - 위젯에 동영상 파일 추가하기 (인트로)
  • Unreal - 새로하기, 이어하기 메인메뉴 만들기
  • Unreal - 플레이어 리스폰
  • Unreal - 던전진행도 위젯 만들기 (스칼라 파라미터 조절하기)
lucodev
lucodev
언리얼 포폴개발 일기
  • lucodev
    루코 개발테이블
    lucodev
  • 전체
    오늘
    어제
    • 분류 전체보기 (236)
      • Unreal 프로젝트 다이어리 (132)
        • 첫번째 프로젝트 (73)
        • 두번째 프로젝트 (59)
      • Unreal 팁 (8)
      • Unreal 디버깅 (8)
      • C++ 프로그래머스 (52)
        • Stack,Queue (7)
        • Hash (4)
        • Heap (2)
        • Sort (5)
        • Exhaustive search (5)
        • Greedy (2)
        • BFS , DFS (7)
        • Graph (2)
        • Dynamic Programming (1)
        • C++ Math (2)
        • 기타 문제 (14)
      • C++ 백준 (5)
      • C++ 팁 (1)
      • 개인 코테 & 스타디 <비공개> (29)
        • 코드 개인보관함 (9)
        • 코딩테스트+@ (11)
        • 알고리즘 스타디 (6)
        • 알고리즘 스타디 과제 (3)
        • 비공개 (0)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 링크

  • 공지사항

  • 블로그 메뉴

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

    언리얼 시퀀스
    unreal 파쿠르
    언리얼 인벤토리
    언리얼 상호작용
    unreal 인벤토리
    언리얼 ui
    언리얼 parkour
    언리얼 파쿠르
    언리얼 컷씬
    언리얼 인터렉션
    언리얼
    unreal 상호작용
    unreal 세키로
    unreal inventory
    unreal npc
    언리얼 behavior tree
    unreal
    언리얼 behaviortree
    언리얼 세키로
    언리얼 비헤이비어트리
  • hELLO· Designed By정상우.v4.10.3
lucodev
Unreal - 던전 클리어 위젯 만들기
상단으로

티스토리툴바