(Feat) Add Animation Fps Charater
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Blueprint/UserWidget.h"
|
||||
#include "InputCoreTypes.h"
|
||||
#include "SettingKeyRowWidget.generated.h"
|
||||
|
||||
class UButton;
|
||||
class UTextBlock;
|
||||
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnSettingKeyRebindRequested, FName, MappingName);
|
||||
|
||||
/**
|
||||
* Une ligne de remappage : un libelle, et un bouton portant la touche actuelle.
|
||||
*
|
||||
* Widget distinct de USettingRowWidget et non un mode de plus : une touche n'est
|
||||
* pas un index dans une liste de paliers, il n'y a ni fleches ni curseur, et
|
||||
* l'interaction est d'une autre nature -- on ouvre un voile de capture.
|
||||
*
|
||||
* Elle ne sait pas remapper. Elle previent via OnRebindRequested et c'est
|
||||
* l'onglet qui pilote, comme partout ailleurs dans les reglages.
|
||||
*
|
||||
* Classe Abstract : on cree un WBP_SettingKeyRow qui en herite.
|
||||
*/
|
||||
UCLASS(Abstract)
|
||||
class EMBERWILD_API USettingKeyRowWidget : public UUserWidget
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
virtual void NativeOnInitialized() override;
|
||||
|
||||
UPROPERTY(BlueprintAssignable, Category = "Reglages")
|
||||
FOnSettingKeyRebindRequested OnRebindRequested;
|
||||
|
||||
/** Pose le libelle et la touche. Le nom de mapping est renvoye tel quel au clic. */
|
||||
UFUNCTION(BlueprintCallable, Category = "Reglages")
|
||||
void Setup(FName InMappingName, const FText& Label, const FKey& Key);
|
||||
|
||||
/** Met a jour la seule touche affichee. */
|
||||
UFUNCTION(BlueprintCallable, Category = "Reglages")
|
||||
void SetKey(const FKey& Key);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "Reglages")
|
||||
FName GetMappingName() const { return MappingName; }
|
||||
|
||||
protected:
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
TObjectPtr<UTextBlock> LabelText;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
TObjectPtr<UButton> KeyButton;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
TObjectPtr<UTextBlock> KeyText;
|
||||
|
||||
/** Couleur du texte quand l'action n'a plus aucune touche. */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Reglages")
|
||||
FLinearColor UnboundColor = FLinearColor(0.9f, 0.2f, 0.2f);
|
||||
|
||||
/** Couleur normale. Reprise telle quelle a la premiere affectation valide. */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Reglages")
|
||||
FLinearColor BoundColor = FLinearColor::White;
|
||||
|
||||
private:
|
||||
UFUNCTION()
|
||||
void HandleKeyButtonClicked();
|
||||
|
||||
/** Identifiant Enhanced Input du mapping, pas le libelle affiche. */
|
||||
FName MappingName = NAME_None;
|
||||
};
|
||||
Reference in New Issue
Block a user