Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
CardSelectionWidget.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "CardSelectionWidget.generated.h"
8
9class UHorizontalBox;
11class UCardWidget;
12class USituationBase;
13
18UCLASS()
19class CK_UE_API UCardSelectionWidget : public UPopupWidgetBase
20{
21 GENERATED_BODY()
22
23public:
24 // 푸시한 쪽에서 선택지를 넣어준다. 위젯이 직접 서브시스템을 구독하지 않는다.
25 void SetupChoices(const TArray<TObjectPtr<USituationBase>>& Choices);
26
27public:
29 {
30 return ProgressWidget;
31 }
32
33protected:
34 // 활성화된 동안 시간을 멈춘다. 카드 고르기에 집중하도록.
35 virtual void OnActivated() override;
36 virtual void OnDeactivated() override;
37 virtual void NativeDestruct() override;
38
39protected:
40 void HandleCardChosen(UCardWidget* Card);
41 void ClearCards();
42
43protected:
44 // 카드가 모두 배치된 뒤 호출. 등장 연출은 BP 에서 처리한다.
45 UFUNCTION(BlueprintImplementableEvent, Category = "UI|Situation")
46 void OnChoicesReady();
47
48protected:
49 UPROPERTY(BlueprintReadOnly, Category = "UI|Situation", meta = (BindWidget))
50 TObjectPtr<UHorizontalBox> CardContainer;
51
52 UPROPERTY(BlueprintReadOnly, Category = "UI|Situation", meta = (BindWidget))
53 TObjectPtr<UStreamingProgressWidget> ProgressWidget;
54
55 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI|Situation")
56 TSubclassOf<UCardWidget> CardClass;
57
58protected:
59 UPROPERTY(Transient)
60 TArray<TObjectPtr<UCardWidget>> Cards;
61
62private:
63 // 활성/비활성이 짝을 이루지 않으면 시간이 멈춘 채 남는다.
64 uint8 bTimeFrozen : 1 = false;
65};
Definition CardSelectionWidget.h:20
FORCEINLINE UStreamingProgressWidget * GetProgressWidget() const
Definition CardSelectionWidget.h:28
Definition CardWidget.h:31
Definition PopupWidgetBase.h:25
Definition SituationBase.h:31
Definition StreamingProgressWidget.h:20