【UE4】【C++】添加UI(血条)

这篇博客介绍了如何在UE4中使用C++添加UI血条,通过创建Progress Bar来显示血量百分比,并在蓝图中绑定。关键步骤包括调整血条组件的Draw Size而非Scale,将Space设置为Screen,确保血条能够在3D空间中正确显示。最后,需要在相应游戏对象(如Tank)中整合这个血条组件。

新加一个新的UI,加入Progress Bar



创建绑定(有关血量百分比的)


获得血量的百分比


UFUNCTION(BlueprintPure,Category="Tank")    //暴露的是纯函数-->就是没有白色线的
	float GetHealthPercentage();	//返回当前血量的百分比
float ATank::GetHealthPercentage() {
	return (float)CurrentHp / (float)MaxHp;    //之前定义的 可在炮弹子弹的生成(接受伤害里面看到)
}

接着在蓝图中对应的要有

### 如何在UE4中使用蓝图类制作UI以及主界面UI设计 在UE4中,使用蓝图类制作UI和主界面UI设计是一项常见的任务。以下是详细的实现方法: #### 1. 创建UI元素 在UE4中,可以通过Widget蓝图来创建UI元素。首先需要创建一个新的Widget蓝图文件,用于定义的外观和行为。 - **步骤**:在内容浏览器中右键单击,选择“用户界面” -> “Widget蓝图”。然后在该蓝图中添加一个进度(ProgressBar)组件[^2]。 - 进度的样式可以通过设置其填充颜色、背景颜色以及边框等属性进行自定义。 ```cpp // 设置进度的值 ProgressBar.SetPercent(CurrentHealth / MaxHealth); ``` #### 2. 主界面UI设计 主界面UI通常包括、体力、分数显示等信息。这些可以通过水平框(Horizontal Box)或垂直框(Vertical Box)进行布局[^2]。 - **水平框与垂直框**:水平框可以将多个UI元素并排排列,而垂直框则将它们上下排列。通过调整锚点(Anchor),确保UI在不同分辨率下保持正确位置[^2]。 - **动态更新**:为了使和体力能够动态更新,需要在蓝图中绑定玩家的生命值和体力值变化事件,并实时更新进度的百分比。 #### 3. 蓝图类中的逻辑实现 在蓝图类中,可以通过事件图表(Event Graph)实现的动态变化。 - **绑定事件**:当玩家受到伤害或恢复生命时,触发一个事件来更新的值。 - **代码示例**: ```cpp // 在C++中也可以实现类似功能 void APlayerCharacter::TakeDamage(float DamageAmount) { CurrentHealth -= DamageAmount; if (CurrentHealth < 0) CurrentHealth = 0; UpdateHealthBar(); } void APlayerCharacter::UpdateHealthBar() { if (HealthBarWidget != nullptr) { HealthBarWidget->SetHealthPercentage(CurrentHealth / MaxHealth); } } ``` #### 4. UI添加到视口 为了让UI显示在玩家屏幕上,需要将其添加到视口中。 - **添加到视口**:通过创建一个GameMode或PlayerController蓝图,在BeginPlay事件中调用`AddToViewport`函数将UI添加到屏幕上[^2]。 ```cpp // 示例代码 UUserWidget* HealthBarWidget = CreateWidget<UUserWidget>(GetWorld(), HealthBarClass); if (HealthBarWidget != nullptr) { HealthBarWidget->AddToViewport(); } ``` ### 注意事项 - 确保UI的锚点设置正确,以适应不同的屏幕分辨率。 - 使用进度组件时,注意其方向(如从左到右或从上到下)是否符合设计需求[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值