Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
StreamingProgressHUDWidget.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Blueprint/UserWidget.h"
7#include "StreamingProgressHUDWidget.generated.h"
8
9enum class ESituationTag : uint8;
10
11class USituationBase;
12class UTextBlock;
13class UTexture2D;
14class UWrapBox;
23UCLASS()
24class CK_UE_API UStreamingProgressHUDWidget : public UUserWidget
25{
26 GENERATED_BODY()
27
28public:
29 // 이미 장착한 상황들로 아이콘을 처음부터 다시 그린다.
30 // 리스폰 등으로 HUD 가 다시 만들어져도 지금까지 고른 카드가 남아 있게 한다.
31 void RebuildFromSituations(const TArray<USituationBase*>& Situations);
32
33 // 확정된 방송 제목을 띄운다. ESituationTag::None 이면 제목 칸을 비운다.
34 void SetBroadcastTitle(ESituationTag ConfirmedTag);
35
36protected:
37 // 두 서브시스템의 이벤트를 구독하고 현재 상태로 한 번 맞춘다.
38 virtual void NativeConstruct() override;
39
40 // 위젯이 서브시스템보다 먼저 사라질 수 있어 구독을 반드시 끊는다.
41 virtual void NativeDestruct() override;
42
43protected:
44 // 카드를 골랐을 때. 아이콘 한 칸을 켠다.
45 void HandleSituationEquipped(USituationBase* Situation);
46
47 // 같은 태그가 기준 수만큼 모여 방송 제목이 확정됐을 때.
48 void HandleBroadcastTitleConfirmed(ESituationTag ConfirmedTag);
49
50protected:
51 // 켜둔 칸을 모두 끄고 처음부터 다시 채울 준비를 한다.
52 void ResetIcons();
53
54 // 다음 빈 칸을 켜고 텍스처를 꽂는다. 남은 칸이 없으면 경고만 남기고 넘어간다.
55 void ActivateNextIcon(UTexture2D* IconTexture);
56
57protected:
58 UPROPERTY(BlueprintReadOnly, Category = "UI|Progress", meta = (BindWidget))
59 TObjectPtr<UWrapBox> IconContainer;
60
61 UPROPERTY(BlueprintReadOnly, Category = "UI|Progress", meta = (BindWidget))
62 TObjectPtr<UTextBlock> StreamingTitle;
63
64 // 기획이 아직 안 나와 코드에서는 손대지 않는다. BP 에서 채워 두면 그대로 남는다.
65 UPROPERTY(BlueprintReadOnly, Category = "UI|Progress", meta = (BindWidget))
66 TObjectPtr<UTextBlock> GuideMessage;
67
68protected:
69 int32 ActivatedIconIndex = 0;
70};
ESituationTag
Definition SituationTag.h:17
Definition SituationBase.h:31
Definition StreamingProgressHUDWidget.h:25