Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
DamageNumberWidget.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 "Animation/WidgetAnimation.h"
7#include "Blueprint/UserWidget.h"
8#include "Components/Image.h"
9#include "Materials/MaterialInstanceDynamic.h"
10#include "UI/UserWidgetBase.h"
11#include "DamageNumberWidget.generated.h"
12
13class UImage;
14class UTextBlock;
16class UMaterialInstanceDynamic;
17
19
23UCLASS()
24class CK_UE_API UDamageNumberWidget : public UUserWidget
25{
26 GENERATED_BODY()
27
28public:
29 void PlayDamageAnimation();
30
31public:
32 FORCEINLINE void SetDamageTexture(UTexture2D* Texture)
33 {
34 DamageTexture->GetDynamicMaterial()->SetTextureParameterValue(TextureParamName, Texture);
35 }
36
37 FORCEINLINE void ClearDamageTexture()
38 {
39 DamageTexture->GetDynamicMaterial()->SetTextureParameterValue(TextureParamName, nullptr);
40 }
41
42 FORCEINLINE UImage* GetDamageTexture() const
43 {
44 return DamageTexture.Get();
45 }
46
47 FORCEINLINE UMaterialInstanceDynamic* GetDamageTextureMaterial() const
48 {
49 return DamageTexture ? DamageTexture->GetDynamicMaterial() : nullptr;
50 }
51
52protected:
53 virtual void NativeTick(const FGeometry& MyGeometry, float InDeltaTime) override;
54 virtual void NativeConstruct() override;
55 virtual void NativeDestruct() override;
56
57protected:
58 UFUNCTION()
59 void OnAnimFinished();
60
61public:
62 UPROPERTY(BlueprintAssignable, Category = "Widget|Animation")
63 FOnDamageAnimFinished OnDamageAnimFinished;
64
65protected:
66 UPROPERTY(VisibleAnywhere, Transient, Category = "Widget|Animation", meta = (BindWidgetAnim))
67 TObjectPtr<UWidgetAnimation> DamageAnim;
68
69 UPROPERTY(BlueprintReadOnly, Category = "Widget|DamageText", meta = (BindWidget))
70 TObjectPtr<UImage> DamageTexture;
71
72 UPROPERTY(EditAnywhere, BlueprintReadWrite, Interp, Category = "Widget|DamageText", meta = (ClampMin = "0.0", ClampMax = "1.0"))
73 float WhitenAmount = 0.0f;
74
75 UPROPERTY(EditAnywhere, Category = "Widget|DamageText")
76 FName MaterialParamName = "WhitenAmount";
77
78 UPROPERTY(EditAnywhere, Category = "Widget|DamageText")
79 FName TextureParamName = "DamageTexture";
80
81protected:
82 UPROPERTY(Transient)
83 TObjectPtr<UMaterialInstanceDynamic> DamageTextureMaterial;
84};
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnDamageAnimFinished, UDamageNumberWidget *, NumberWidget, EWidgetState, State)
EWidgetState
Definition UserWidgetBase.h:19
Definition DamageNumberWidget.h:25
FORCEINLINE UMaterialInstanceDynamic * GetDamageTextureMaterial() const
Definition DamageNumberWidget.h:47
FORCEINLINE UImage * GetDamageTexture() const
Definition DamageNumberWidget.h:42
FORCEINLINE void ClearDamageTexture()
Definition DamageNumberWidget.h:37
FORCEINLINE void SetDamageTexture(UTexture2D *Texture)
Definition DamageNumberWidget.h:32