KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
UHoverButton.h
이 파일의 문서화 페이지로 가기
1// Copyright (c) 2025 Doppleddiggong. All rights reserved. Unauthorized copying, modification, or distribution of this file, via any medium is strictly prohibited. Proprietary and confidential.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Blueprint/UserWidget.h"
7#include "UHoverButton.generated.h"
8
9DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnHoverButtonClickedEvent);
10
11UCLASS()
12class ONEPIECE_API UHoverButton : public UUserWidget
13{
14 GENERATED_BODY()
15
16public:
17 UFUNCTION(BlueprintCallable)
18 void SetButtonEnabled(bool bInEnabled);
19
20protected:
21 virtual void NativePreConstruct() override;
22 virtual void NativeConstruct() override;
23 virtual void NativeTick(const FGeometry& MyGeometry, float InDeltaTime) override;
24
25private:
26 void ApplyStyle();
27
28 UFUNCTION()
29 void HandleHovered();
30
31 UFUNCTION()
32 void HandleUnhovered();
33
34 UFUNCTION()
35 void HandlePressed();
36
37 UFUNCTION()
38 void HandleReleased();
39
40 UFUNCTION()
41 void HandleClicked();
42
43public:
44 UPROPERTY(BlueprintAssignable, Category = "Event")
45 FOnHoverButtonClickedEvent OnButtonClickedEvent;
46
47 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Style", meta=(ExposeOnSpawn=true))
48 FText LabelText = FText::FromString("Button");
49
50 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Style", meta=(ExposeOnSpawn=true))
51 int32 FontSize = 48;
52
53 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Style", meta=(ExposeOnSpawn=true))
54 int32 FontOutlineSize = 0;
55
56 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Style", meta=(ExposeOnSpawn=true))
57 FLinearColor NormalTextColor = FLinearColor::White;
58
59 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Style", meta=(ExposeOnSpawn=true))
60 FLinearColor HoverTextColor = FLinearColor(0.8f, 0.9f, 1.f);
61
62 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Style", meta=(ExposeOnSpawn=true))
63 FLinearColor PressTextColor = FLinearColor(0.6f, 0.7f, 1.f);
64
65
66 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Style", meta=(ExposeOnSpawn=true))
67 FLinearColor NormalButtonColor = FLinearColor(0.1f, 0.1f, 0.1f);
68
69 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Style", meta=(ExposeOnSpawn=true))
70 FLinearColor HoverButtonColor = FLinearColor(0.2f, 0.2f, 0.2f);
71
72 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Style", meta=(ExposeOnSpawn=true))
73 FLinearColor PressButtonColor = FLinearColor(0.05f, 0.05f, 0.05f);
74
75private:
76 UPROPERTY(meta = (BindWidget))
77 class UButton* Button_Main;
78
79 UPROPERTY(meta = (BindWidget))
80 class UBorder* Border_BG;
81
82 UPROPERTY(meta = (BindWidget))
83 class UTextBlock* Text_Label;
84
85private:
86 // 현재 값
87 FVector2D CurrentScale = FVector2D(1.f, 1.f);
88 float CurrentBrightness = 1.0f;
89
90 // 목표값
91 FVector2D TargetScale = FVector2D(1.f, 1.f);
92 float TargetBrightness = 1.f;
93
94 // 애니메이션 속도
95 float LerpSpeed = 20.f;
96
97 bool bEnabled = true;
98};
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnHoverButtonClickedEvent)