[UE4] 制作血条HUD

内容自学自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即显示在相应位置 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值