// Fill out your copyright notice in the Description page of Project Settings. | |
UCLASS() | |
class HOPETOWERDEFENSE_API AHopePlayerController : public APlayerController | |
{ | |
//GENERATED_BODY() | |
GENERATED_UCLASS_BODY() | |
public: | |
//AHopePlayerController(const FObjectInitializer& ObjectInitializer); | |
virtual ~AHopePlayerController(); | |
public: | |
virtual void BeginPlay() override; | |
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = UI) | |
TSubclassOf<UGameWidget> WidgetClass; | |
UPROPERTY() | |
UGameWidget* WidgetInstance; | |
}; | |
AHopePlayerController::AHopePlayerController(const FObjectInitializer& ObjectInitializer) | |
: Super(ObjectInitializer) | |
{ | |
//Must put in constructor | |
ConstructorHelpers::FClassFinder<UGameWidget> PutNameHere(TEXT("/Game/MyUMG")); | |
if (PutNameHere.Class) { | |
WidgetClass = PutNameHere.Class; | |
} | |
} | |
void AHopePlayerController::BeginPlay() | |
{ | |
Super::BeginPlay(); | |
if (WidgetClass) { | |
if (!WidgetInstance) { | |
WidgetInstance = CreateWidget<UGameWidget>(this, WidgetClass); | |
UImage* image = NewObject<UImage>(UImage::StaticClass()); | |
image->SetVisibility(ESlateVisibility::Visible); | |
UPanelWidget* rootPanel = (UPanelWidget*)WidgetInstance->GetRootWidget(); | |
//UPanelWidget* rootPanel = (UPanelWidget*)WidgetInstance->GetWidgetFromName(TEXT("RootCanvasPanel")); | |
rootPanel->AddChild(image); | |
UCanvasPanelSlot* canvasPanelSlot = (UCanvasPanelSlot*)image->Slot; | |
auto slot = image->Slot; | |
canvasPanelSlot->SetPosition(FVector2D(100, 100)); | |
} | |
} | |
if (!WidgetInstance->GetIsVisible()) | |
{ | |
WidgetInstance->AddToViewport(); | |
} | |
} | |
同標籤作品搜尋:Unreal Engine 4
留言共 1 篇留言
前一篇:[UE4]GENERAT... 後一篇:[UE4] 幾個增加C+...