UE4 C++为角色添加血条组件并动态变化。

Posted Tanzq*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UE4 C++为角色添加血条组件并动态变化。相关的知识,希望对你有一定的参考价值。

添加UI血条组件

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="XXXX")
UWidgetComponent* Widget;

// 在初始化完组件之后调用
virtual void PostInitializeComponents() override;

// HpBarWidget 使用进度条来代表血条的变化。
UPROPERTY()
UProgressBar* HPBarProgress;

对组件进行初始化及调用

  • 构造函数
Widget = CreateDefaultSubobject<UWidgetComponent>(TEXT("Widget"));
Widget->SetupAttachment(RootComponent);
  • PostInitializeComponents 对进度条进行初始化
void AEnemyCharacter::PostInitializeComponents()
{
	Super::PostInitializeComponents();

	// 获得当前UI控件
	UUserWidget* CurrentWidget = Widget->GetUserWidgetObject(); 

	if (CurrentWidget)
	{
		// 获取名为 Health 的 控件,待会会讲到
		HPBarProgress = Cast<UProgressBar>(CurrentWidget->GetWidgetFromName(TEXT("Health")));
		if (HPBarProgress)
		{
			// 设置一个初始进度。
			HPBarProgress->SetPercent(1.f);
		}
	}
}
  • 在 BeginPlaye中调用它
PostInitializeComponents();
  • 在血条变化的是调用并修改
HPBarProgress->SetPercent(CurrentHp / MaxHp);

加载血条UI

新建蓝图控件。

加一个进度条并命名为Health。

将蓝图控件加载人物血条控件中即可。

以上是关于UE4 C++为角色添加血条组件并动态变化。的主要内容,如果未能解决你的问题,请参考以下文章

UE4 C++ 绑定敌人血条

UE4 C++角色与道具技能的互动(下)

UE4笔记 -- 创建广告牌/头顶牌(Widget&Billboard)

UE4蓝图AI角色制作之建立AI感知

UE4 C++角色拾取替换武器(下)

UE4 C++角色与道具技能的互动(上)