UE4 C++关联蓝图界面(仅显示)
使用的自带第三人称c++模板,UE4.27
实现教程参考:UE5虚幻引擎C++【第六期】实现UMG控件_哔哩哔哩_bilibili
1.创建一个蓝图界面控件,设置好布局
2.找到项目代码xx(项目名称).build.cs文件
1)添加UMG及后续部分,使得可以调用蓝图模块相关内容
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay", "UMG", "Slate","SlateCore" }); PrivateDependencyModuleNames.AddRange(new string[] { });
3.找到项目代码中xx(项目名称)GameMode.h文件
1)添加头文件
#include "Blueprint/UserWidget.h"
2)类中添加虚函数BeginPlay,后续作为游戏运行即调用界面,CustomWidgetIns是自定义用户界面
class ATencent1GameMode : public AGameModeBase { GENERATED_BODY() public: ATencent1GameMode(); protected: virtual void BeginPlay() override; private: UUserWidget* CustomWidgetIns; };
4.找到项目代码中xx(项目名称)GameMode.cpp文件
1)初始化CustomWidgetIns = nullptr;
2)编写BeginPlay()函数
void ATencent1GameMode::BeginPlay() { Super::BeginPlay(); if (UClass* CustomWidgetClass = LoadClass<UUserWidget>(nullptr, TEXT("WidgetBlueprint'/Game/HUD.HUD_C'"))) {//loadclass就是关联到我们一开始创建的界面,注意右键复制界面的引用同时在地址最后加_C if (APlayerController* PC = GetWorld()->GetFirstPlayerController()) {//检查是否存在有效的玩家控制器并获取第一个 CustomWidgetIns = CreateWidget(PC, CustomWidgetClass); if (CustomWidgetIns) { CustomWidgetIns->AddToViewport();//将界面添加到视口 } } } }
5.编译后可成功加载界面,比如左上角显示用户名