内容自学自B站AV71207348,P27
该文仅为自学记录,并非教程
系统环境:WIN10, UE4(引擎版本4.27.1),Visual Studio 2022 Community
1. 资产浏览器右键选择新建控件蓝图
2. 左上角控制板 → 面板 → 水平框,可以先将默认画布删除,再将水平框拖拽至层级的自命名控件下方,然后将控制板 → 通用 → 进度条拖拽至水平框的附属层级。
3. 点击层级中的ProgressBar(进度条),在编辑器右方的细节面板中调整参数。
插槽 → 填充 → 尺寸(填充)
进度 → 百分比 → 20%(随意)
外观 → 填充颜色和不透明度(进度条的颜色)
样式 → 着色 → 半透明(进度条背景颜色)
调整后效果:
4. 再在资产浏览器中新建另一个控件蓝图,该控件蓝图为用户界面总HUD
通过水平框与垂直框的配合(填充,填充数值),来布局HUD,最后将控制板 → 用户创建 → HP(用户自行命名)拖拽至理想位置。
5. 资产浏览器 → 选择路径 → C++类 → 空白处新建C++类 → 继承自PlayerController
6. MyPlayerController.h文件
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/PlayerController.h"
#include "MyPlayerController.generated.h"
/**
*
*/
UCLASS()
class PROJECT3_API AMyPlayerController : public APlayerController
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TSubclassOf<UUserWidget>HUDAssert;
UUserWidget* HUD;
protected:
virtual void BeginPlay() override;
};
MyPlayerController.cpp文件
#include "MyPlayerController.h"
#include "Blueprint/UserWidget.h"
void AMyPlayerController::BeginPlay()
{
Super::BeginPlay();
if (HUDAssert)
{
HUD = CreateWidget<UUserWidget>(this, HUDAssert);
}
if (HUD)
{
HUD->AddToViewport();
}
}
Build.cs文件
using UnrealBuildTool;
public class project3 : ModuleRules
{
public project3(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
//此行下列新添UMG模块
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay" , "UMG"});
}
}
7. 创建MyPlayerController蓝图,命名为MyPlayerController_BP
类默认值 → 细节 → HUDAssert → 选择HUD
8. UE世界场景设置 → 游戏模式 → GameMode → 新建蓝图 → 命名后缀加BP → 游戏模式重载 → 选择蓝图化后的游戏模式 → HUD类选择HUD → 玩家控制器类选择MyPlayerController
9. 单机第三人称模型 → 细节 → 搜索poss → 改为玩家0
10. 开始游戏,HUD即显示在相应位置