던전을 클리어했을때 던전에서 플레이했던 내용을 기록하는 클리어 위젯을 만들어보도록하겠습니다
이미띄워진 클리어%를 나타내는 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);
여러가지 디테일적인 애니메이션을 추가해주었습니다
'Unreal5 프로젝트 다이어리' 카테고리의 다른 글
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 |