Files
BusyRabbit/Source/BusyRabbit/Public/UIFramework/UIFrameworkHud.h
2025-10-28 23:51:17 +08:00

56 lines
1.0 KiB
C++

#pragma once
#include "GameFramework/HUD.h"
#include "UIFramework/UIManager.h"
#include "UIFrameworkHud.generated.h"
DECLARE_LOG_CATEGORY_EXTERN(LogUIHud, Log, All);
class UPW_UIController;
UCLASS(Blueprintable, BlueprintType)
class APW_UIFrameworkHud : public AHUD
{
GENERATED_BODY()
public:
APW_UIFrameworkHud();
virtual void BeginPlay() override;
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
public:
UPW_UIController* GetUIController(const FName& Name);
public:
UPW_UIManager* GetUIManager()const {return UIManager.Get();}
protected:
void TryNotifyResourceLoaded();
protected:
UFUNCTION(BlueprintNativeEvent)
void OnResourceLoaded();
protected:
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
TSubclassOf<UPW_RootWidget> RootWidgetClass;
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
TMap<FName, TSoftClassPtr<UPW_UIController>> UIControllerClasses;
protected:
UPROPERTY()
TObjectPtr<UPW_UIManager> UIManager;
UPROPERTY()
TMap<FName, UPW_UIController*> UIControllers;
};