diff --git a/Content/CombatSystem/Blueprints/AI/BP_BossEnemy.uasset b/Content/CombatSystem/Blueprints/AI/BP_BossEnemy.uasset index 64fcdc8c..b08353e0 100644 Binary files a/Content/CombatSystem/Blueprints/AI/BP_BossEnemy.uasset and b/Content/CombatSystem/Blueprints/AI/BP_BossEnemy.uasset differ diff --git a/Content/CombatSystem/UI/TestWidget.uasset b/Content/CombatSystem/UI/TestWidget.uasset new file mode 100644 index 00000000..944bb553 Binary files /dev/null and b/Content/CombatSystem/UI/TestWidget.uasset differ diff --git a/Content/CombatSystem/UI/WBP_BossHealth.uasset b/Content/CombatSystem/UI/WBP_BossHealth.uasset index cef35170..f1399620 100644 Binary files a/Content/CombatSystem/UI/WBP_BossHealth.uasset and b/Content/CombatSystem/UI/WBP_BossHealth.uasset differ diff --git a/Content/CombatSystem/UI/WBP_MainHUD.uasset b/Content/CombatSystem/UI/WBP_MainHUD.uasset index 2d63cbde..a20c7683 100644 Binary files a/Content/CombatSystem/UI/WBP_MainHUD.uasset and b/Content/CombatSystem/UI/WBP_MainHUD.uasset differ diff --git a/Content/__ExternalActors__/Maps/ThirdPersonMap/C/XB/VDN1AZGBR27RRAVN232UU7.uasset b/Content/__ExternalActors__/Maps/ThirdPersonMap/C/XB/VDN1AZGBR27RRAVN232UU7.uasset index 3e0db85f..b433f59d 100644 Binary files a/Content/__ExternalActors__/Maps/ThirdPersonMap/C/XB/VDN1AZGBR27RRAVN232UU7.uasset and b/Content/__ExternalActors__/Maps/ThirdPersonMap/C/XB/VDN1AZGBR27RRAVN232UU7.uasset differ diff --git a/Source/D1/AI/BossEnemy.cpp b/Source/D1/AI/BossEnemy.cpp index 1784a8df..651f9d50 100644 --- a/Source/D1/AI/BossEnemy.cpp +++ b/Source/D1/AI/BossEnemy.cpp @@ -63,14 +63,14 @@ void ABossEnemy::BeginPlay() if (World) { APlayerController* Contorller = World->GetFirstPlayerController(); - if(Controller) + if(!Controller) //TODO : 임시 { UUI_BossHealth* BossHealthRef = CreateWidget(Contorller, UUI_BossHealth::StaticClass()); if (BossHealthRef) //ExposeOnSpawn 대용으로 사용 { BossHealthWidget = BossHealthRef; - BossHealthWidget->InitializeWidget(StatsComponent); BossHealthRef->AddToViewport(); + BossHealthWidget->InitializeWidget(StatsComponent); } } } diff --git a/Source/D1/UI/CombatHUD.cpp b/Source/D1/UI/CombatHUD.cpp index d3bb3773..c0bd59b7 100644 --- a/Source/D1/UI/CombatHUD.cpp +++ b/Source/D1/UI/CombatHUD.cpp @@ -2,6 +2,8 @@ #include "UI/CombatHUD.h" + +#include "UI_BossHealth.h" #include "UI/UI_MainHUD.h" void ACombatHUD::BeginPlay() @@ -17,5 +19,11 @@ void ACombatHUD::BeginPlay() UUI_MainHUD* outputUI = CreateWidget(Contorller, MainUI); outputUI->AddToViewport(); } + + UUI_BossHealth* BossHealthRef = CreateWidget(Contorller, UUI_BossHealth::StaticClass()); + if (BossHealthRef) //ExposeOnSpawn 대용으로 사용 + { + BossHealthRef->AddToViewport(); + } } } diff --git a/Source/D1/UI/UI_BossHealth.cpp b/Source/D1/UI/UI_BossHealth.cpp index 0fa31bdb..012ffd4f 100644 --- a/Source/D1/UI/UI_BossHealth.cpp +++ b/Source/D1/UI/UI_BossHealth.cpp @@ -5,13 +5,28 @@ #include "UI_HealthBar.h" #include "Components/StatsComponent.h" +#include "Components/TextBlock.h" -UUI_BossHealth::UUI_BossHealth() +void UUI_BossHealth::NativeConstruct() { - + /* + * TODO : + * Blueprint로 호출할때는 호출되지만 + * C++로 호출할 때는 nullptr로 들어옴 + */ + Super::NativeConstruct(); + HealthBar = Cast(GetWidgetFromName(TEXT("HealthBarWidget"))); + if(HealthBar) + //HealthBar->InitializeHealthBar(StatsComponent, EStats::Health); + + Test1 = Cast(GetWidgetFromName(TEXT("Test1Widget"))); + Test2 = Cast(GetWidgetFromName(TEXT("Test2Widget"))); + // ensure(Test1); + // ensure(Test2); } void UUI_BossHealth::InitializeWidget(UStatsComponent* InputStatsComponent) { - HealthBar->InitializeHealthBar(InputStatsComponent, EStats::Health); + if(IsValid(InputStatsComponent)) + StatsComponent = InputStatsComponent; } diff --git a/Source/D1/UI/UI_BossHealth.h b/Source/D1/UI/UI_BossHealth.h index 96e39a6b..bc8ef695 100644 --- a/Source/D1/UI/UI_BossHealth.h +++ b/Source/D1/UI/UI_BossHealth.h @@ -14,15 +14,15 @@ class D1_API UUI_BossHealth : public UUserWidget { GENERATED_BODY() public: - UUI_BossHealth(); + virtual void NativeConstruct() override; void InitializeWidget(class UStatsComponent* InputStatsComponent); private: - /* - * TODO : - * 해당 파일은 Blueprint Widget을 사용하는데 - * UUI_HealthBar는 C++ 파일이라서 서로 매칭이 안됨. - * 어떻게 해야하는지 물어봐야됨 - */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(BindWidget, AllowPrivateAccess="true")) - TSubclassOf HealthBar; + UPROPERTY() + TObjectPtr HealthBar; + UPROPERTY() + TObjectPtr Test1; + UPROPERTY() + TObjectPtr Test2; + UPROPERTY() + TObjectPtr StatsComponent; };