[UE4] 制作血条HUD

内容自学自B站AV71207348,P27

该文仅为自学记录,并非教程

系统环境:WIN10, UE4(引擎版本4.27.1),Visual Studio 2022 Community

1. 资产浏览器右键选择新建控件蓝图

[UE4] 制作血条HUD_第1张图片

2. 左上角控制板 → 面板 → 水平框,可以先将默认画布删除,再将水平框拖拽至层级的自命名控件下方,然后将控制板 → 通用 → 进度条拖拽至水平框的附属层级。

[UE4] 制作血条HUD_第2张图片

3. 点击层级中的ProgressBar(进度条),在编辑器右方的细节面板中调整参数。

插槽 → 填充 → 尺寸(填充)

进度 → 百分比 → 20%(随意)

外观 → 填充颜色和不透明度(进度条的颜色)

样式 → 着色 → 半透明(进度条背景颜色)

调整后效果:

[UE4] 制作血条HUD_第3张图片

 4. 再在资产浏览器中新建另一个控件蓝图,该控件蓝图为用户界面总HUD

通过水平框与垂直框的配合(填充,填充数值),来布局HUD,最后将控制板 → 用户创建 → HP(用户自行命名)拖拽至理想位置。

[UE4] 制作血条HUD_第4张图片

5. 资产浏览器 → 选择路径 → C++类 → 空白处新建C++类 → 继承自PlayerController

[UE4] 制作血条HUD_第5张图片

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)
		TSubclassOfHUDAssert;

	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(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

[UE4] 制作血条HUD_第6张图片

8. UE世界场景设置 → 游戏模式 → GameMode → 新建蓝图 → 命名后缀加BP → 游戏模式重载 → 选择蓝图化后的游戏模式 → HUD类选择HUD → 玩家控制器类选择MyPlayerController

[UE4] 制作血条HUD_第7张图片

9. 单机第三人称模型 → 细节 → 搜索poss → 改为玩家0

[UE4] 制作血条HUD_第8张图片

10. 开始游戏,HUD即显示在相应位置 

[UE4] 制作血条HUD_第9张图片

 

 

你可能感兴趣的:(ue4,visual,studio,c++)