Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
UserWidgetBase.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 "AbilitySystemInterface.h"
7#include "GameplayTagContainer.h"
8#include "Blueprint/UserWidget.h"
10#include "UserWidgetBase.generated.h"
11
12
13class UUserWidgetBase;
15
16
17UENUM(BlueprintType)
18enum class EWidgetState : uint8
19{
20 NoInit UMETA(DisplayName = "아직 초기화하지 않음"),
21 Appearing UMETA(DisplayName = "나타나고 있는 중"),
22 Appeared UMETA(DisplayName = "이미 나타남"),
23 Disappearing UMETA(DisplayName = "사라지고 있는 중"),
24 Disappeared UMETA(DisplayName = "사라짐")
25};
26
27
31UCLASS()
32class CK_UE_API UUserWidgetBase : public UUserWidget, public IAbilitySystemInterface
33{
34 GENERATED_BODY()
35
36public:
37 virtual void SetAbilitySystemComponent(AActor* InOwner);
38 virtual UAbilitySystemComponent* GetAbilitySystemComponent() const override;
39 virtual void OnPushedToLayer();
40 virtual void OnPoppedFromLayer();
41 virtual void OnActivated();
42 virtual void OnDeactivated();
43
44public:
45 UFUNCTION(BlueprintCallable, Category = Widget)
46 void Activate();
47
48 UFUNCTION(BlueprintCallable, Category = Widget)
49 void Deactivate();
50
51public:
52 FORCEINLINE FGameplayTag GetLayerTag() const
53 {
54 return LayerTag;
55 }
56
57 FORCEINLINE void SetLayerTag(const FGameplayTag InTag)
58 {
59 LayerTag = InTag;
60 }
61
62 FORCEINLINE bool IsPrimary() const
63 {
64 return bPrimary;
65 }
66
67 FORCEINLINE void SetPrimary(const bool InPrimary)
68 {
69 bPrimary = InPrimary;
70 }
71
72 FORCEINLINE EWidgetState GetWidgetState() const
73 {
74 return WidgetState;
75 }
76
77 FORCEINLINE void SetWidgetState(const EWidgetState InState)
78 {
79 WidgetState = InState;
80 }
81
82 UFUNCTION(BlueprintPure, Category = "Widget|Event")
83 FORCEINLINE UWaitForWidgetActivation* GetActivationHandle()
84 {
85 return ActivationHandle ? ActivationHandle : (ActivationHandle = NewObject<UWaitForWidgetActivation>(this));
86 }
87
88 FORCEINLINE bool HasAppearanceAnim() const
89 {
90 return AppearanceAnim != nullptr;
91 }
92
93 FORCEINLINE bool HasDisappearanceAnim() const
94 {
95 return DisappearanceAnim != nullptr;
96 }
97
98protected:
99 UFUNCTION()
100 virtual void OnWidgetActivated();
101
102 UFUNCTION()
103 virtual void OnWidgetDeactivated();
104
105protected:
106 UFUNCTION(BlueprintImplementableEvent, Category = "Widget|Event")
107 void OnPushedToLayer_Internal();
108
109 UFUNCTION(BlueprintImplementableEvent, Category = "Widget|Event")
110 void OnPoppedFromLayer_Internal();
111
112 UFUNCTION(BlueprintImplementableEvent, Category = "Widget|Event")
113 void OnActivated_Internal();
114
115 UFUNCTION(BlueprintImplementableEvent, Category = "Widget|Event")
116 void OnDeactivated_Internal();
117
118protected:
119 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Transient, Category = "Widget")
120 EWidgetState WidgetState;
121
122 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "GAS")
123 TObjectPtr<UAbilitySystemComponent> ASC;
124
125 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Layer", Meta = (Categories = "UI"))
126 FGameplayTag LayerTag;
127
128 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Layer")
129 bool bPrimary = false;
130
131 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Transient, Category = "Layer", meta = (BindWidgetAnimOptional))
132 TObjectPtr<UWidgetAnimation> AppearanceAnim;
133
134 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Transient, Category = "Layer", meta = (BindWidgetAnimOptional))
135 TObjectPtr<UWidgetAnimation> DisappearanceAnim;
136
137private:
138 UPROPERTY(meta = (AllowPrivateAccess = "true"))
139 TObjectPtr<UWaitForWidgetActivation> ActivationHandle;
140};
EWidgetState
Definition UserWidgetBase.h:19
Definition UserWidgetBase.h:33
FORCEINLINE bool HasAppearanceAnim() const
Definition UserWidgetBase.h:88
FORCEINLINE bool IsPrimary() const
Definition UserWidgetBase.h:62
FORCEINLINE EWidgetState GetWidgetState() const
Definition UserWidgetBase.h:72
FORCEINLINE bool HasDisappearanceAnim() const
Definition UserWidgetBase.h:93
FORCEINLINE void SetLayerTag(const FGameplayTag InTag)
Definition UserWidgetBase.h:57
FORCEINLINE void SetPrimary(const bool InPrimary)
Definition UserWidgetBase.h:67
FORCEINLINE void SetWidgetState(const EWidgetState InState)
Definition UserWidgetBase.h:77
FORCEINLINE FGameplayTag GetLayerTag() const
Definition UserWidgetBase.h:52
Definition WaitForWidgetActivation.h:19