当前位置: 首页 > news >正文

乌兰察布建设局网站关于校园网站建设的通知

乌兰察布建设局网站,关于校园网站建设的通知,有什么超好用的做简历的网站,网页制作基础教程第2版葛艳玲文章目录添加生命值和蓝量的状态标签创建无限GE并应用监听添加和去除标签每秒回复配上UI添加生命值和蓝量的状态标签 添加新的标签 CRUNCH_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Stats_Health_Full)CRUNCH_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Stats_Health_Empty)CRUNCH_API U…

文章目录

  • 添加生命值和蓝量的状态标签
  • 创建无限GE并应用
  • 监听添加和去除标签
  • 每秒回复配上UI


添加生命值和蓝量的状态标签

添加新的标签

	CRUNCH_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Stats_Health_Full)CRUNCH_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Stats_Health_Empty)CRUNCH_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Stats_Mana_Full)CRUNCH_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Stats_Mana_Empty)
	UE_DEFINE_GAMEPLAY_TAG_COMMENT(Stats_Health_Full, "Stats.Health.Full", "生命值满")UE_DEFINE_GAMEPLAY_TAG_COMMENT(Stats_Mana_Full, "Stats.Mana.Full", "法术值满")UE_DEFINE_GAMEPLAY_TAG_COMMENT(Stats_Health_Empty, "Stats.Health.Empty", "生命值空")UE_DEFINE_GAMEPLAY_TAG_COMMENT(Stats_Mana_Empty, "Stats.Mana.Empty", "法术值空")

创建无限GE并应用

创建两个GE应用为无限,添加一个组件,死掉和满状态的时候不激活该GE
在这里插入图片描述
在这里插入图片描述
把两个GE添加到角色中去
在这里插入图片描述

监听添加和去除标签

对ASC中监听生命值和法力值的变化进行更改对其添加tag和移除tag(不知道有啥用)

void UCAbilitySystemComponent::HealthUpdated(const FOnAttributeChangeData& ChangeData)
{if (!GetOwner() || !GetOwner()->HasAuthority()) return;// 获取当前最大生命值bool bFound = false;float MaxHealth = GetGameplayAttributeValue(UCAttributeSet::GetMaxHealthAttribute(), bFound);// 如果生命值达到最大值,添加生命值已满标签if (bFound && ChangeData.NewValue >= MaxHealth){if (!HasMatchingGameplayTag(TGameplayTags::Stats_Health_Full)){// 仅本地会添加标签AddLooseGameplayTag(TGameplayTags::Stats_Health_Full);}}else{// 移除生命值已满标签RemoveLooseGameplayTag(TGameplayTags::Stats_Health_Full);}if (ChangeData.NewValue <= 0.0f){if (!HasMatchingGameplayTag(TGameplayTags::Stats_Health_Empty)){// 本地添加生命值清零标签AddLooseGameplayTag(TGameplayTags::Stats_Health_Empty);// 角色死亡if (DeathEffect){AuthApplyGameplayEffect(DeathEffect);}}}else{RemoveLooseGameplayTag(TGameplayTags::Stats_Health_Empty);}
}void UCAbilitySystemComponent::ManaUpdated(const FOnAttributeChangeData& ChangeData)
{// 仅在拥有者存在且为服务器时执行if (!GetOwner() || !GetOwner()->HasAuthority()) return;// 获取当前最大魔法值bool bFound = false;float MaxMana = GetGameplayAttributeValue(UCAttributeSet::GetMaxManaAttribute(), bFound);// 如果魔法值达到最大值,添加魔法值已满标签if (bFound && ChangeData.NewValue >= MaxMana){if (!HasMatchingGameplayTag(TGameplayTags::Stats_Mana_Full)){// 仅本地生效的标签AddLooseGameplayTag(TGameplayTags::Stats_Mana_Full);}}else{// 移除魔法值已满标签RemoveLooseGameplayTag(TGameplayTags::Stats_Mana_Full);}// 处理魔法值为零的情况if (ChangeData.NewValue <= 0){if (!HasMatchingGameplayTag(TGameplayTags::Stats_Mana_Empty)){// 添加魔法值清零标签AddLooseGameplayTag(TGameplayTags::Stats_Mana_Empty);}}else{// 移除魔法值清零标签RemoveLooseGameplayTag(TGameplayTags::Stats_Mana_Empty);}
}

每秒回复配上UI

public:// 设置每秒回复值void SetRegenValueTextToGameplayAttribute(UAbilitySystemComponent* AbilitySystemComponent,const FGameplayAttribute& Attribute);void SetRegenValue(float NewRegenValue);
private:void RegenValueChanged(const FOnAttributeChangeData& ChangeData);// 每秒回复的数值显示,默认为false,小兵不配这个UPROPERTY(EditAnywhere, Category = "Visual")bool bRegenValueTextVisible = false;// 放置右边显示每秒回复的数值UPROPERTY(VisibleAnywhere, meta = (BindWidget))TObjectPtr<UTextBlock> RegenValueText;
void UValueGauge::NativePreConstruct()
{Super::NativePreConstruct();// 设置进度条颜色ProgressBar->SetFillColorAndOpacity(BarColor);ValueText->SetFont(ValueTextFont);RegenValueText->SetFont(ValueTextFont);ValueText->SetVisibility(bValueTextVisible ? ESlateVisibility::Visible : ESlateVisibility::Hidden);ProgressBar->SetVisibility(bProgressBarVisible ? ESlateVisibility::Visible : ESlateVisibility::Hidden);RegenValueText->SetVisibility(bRegenValueTextVisible ? ESlateVisibility::Visible : ESlateVisibility::Hidden);
}
void UValueGauge::SetRegenValueTextToGameplayAttribute(UAbilitySystemComponent* AbilitySystemComponent,const FGameplayAttribute& Attribute)
{if (AbilitySystemComponent){bool bFound;float Value = AbilitySystemComponent->GetGameplayAttributeValue(Attribute, bFound);// 如果成功找到对应的属性值,则更新数值指示器的显示if (bFound){SetRegenValue(Value);}// 注册属性变化回调,当属性值发生变化时更新数值指示器显示AbilitySystemComponent->GetGameplayAttributeValueChangeDelegate(Attribute).AddUObject(this, &UValueGauge::RegenValueChanged);}
}void UValueGauge::SetRegenValue(float NewRegenValue)
{// 设置数字格式选项,最大小数位数为0const FNumberFormattingOptions FormatOps = FNumberFormattingOptions().SetMaximumFractionalDigits(0);// 更新文本显示RegenValueText->SetText(FText::Format(FTextFormat::FromString("{0}/s"),			 // 格式字符串FText::AsNumber(NewRegenValue, &FormatOps)      // 当前值));
}void UValueGauge::RegenValueChanged(const FOnAttributeChangeData& ChangeData)
{SetRegenValue(ChangeData.NewValue);
}

GameplayWidget中添加绑定

void UGameplayWidget::NativeConstruct()
{Super::NativeConstruct();OwnerAbilitySystemComponent = UAbilitySystemBlueprintLibrary::GetAbilitySystemComponent(GetOwningPlayerPawn());if (OwnerAbilitySystemComponent){// 绑定属性回调HealthBar->SetAndBoundToGameplayAttribute(OwnerAbilitySystemComponent, UCAttributeSet::GetHealthAttribute(), UCAttributeSet::GetMaxHealthAttribute());ManaBar->SetAndBoundToGameplayAttribute(OwnerAbilitySystemComponent, UCAttributeSet::GetManaAttribute(), UCAttributeSet::GetMaxManaAttribute());// 绑定每秒回复的属性HealthBar->SetRegenValueTextToGameplayAttribute(OwnerAbilitySystemComponent, UCHeroAttributeSet::GetHealthRegenAttribute());ManaBar->SetRegenValueTextToGameplayAttribute(OwnerAbilitySystemComponent, UCHeroAttributeSet::GetManaRegenAttribute());}
}

构建一下把文本添加进去
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/562631.html

相关文章:

  • 韶关建设局网站58同城租房
  • wordpress建站阿里云濮阳信息港
  • 提交网站到百度网站建设部岗位职责
  • 空白网站建设个人备案可以做影视网站吗
  • 房地产网站策划书个旧建设局信息公开门户网站
  • 有没有做试卷的网站网站介绍医院文化建设
  • 网站logo在哪里内网站做映射
  • 网站新闻后台怎么做东莞微网站建设
  • 计算机网络自顶向下方法24——运输层 可靠数据传输 超时间隔加倍 快速重传 是回退n步还是选择重传
  • 湘潭高新区建设局网站宜春市网站建设
  • Linux开发工具(3)
  • 能在线做实验的网站福田网站建设制作
  • 国际婚恋网站排名wordpress 菜单添加图标
  • 一般网站的后台怎么做的网站调研表
  • 一级域名做网站的好处rails网站开发
  • 自己怎样注册企业网站集团公司网站源码
  • 使用 CloudWatch Logs Insights 分析 Amazon Bedrock 调用延迟
  • 快捷的网站建设软件六盘水做网站
  • 网站开发资金尚层别墅装饰公司官网
  • 网站源码生成知名的中小企业有哪些
  • PCB设计<囫囵吞枣学习法>: 22_PCB设计之设计规则检查
  • 重庆工程建设招标网官方网站广州货运网站建设
  • 银川建企业模板网站网页制作企业网站作业
  • 网站建设有哪些困难房卡app游戏开发
  • 网站建设策划完整方案电商设计培训学校
  • 黄石建设信息网站电商网站建设计入什么科目
  • 多个织梦dedecms网站怎么做站群青海响应式网站建设
  • js做示爱网站例子排名第一的玉米品种
  • 电子商务网站建设需要注意什么外贸企业网站系统源码
  • 复盘与导出工具最新版V34.0版本更新----修复精选个股,今日龙一,风向标,实时盯盘 涨停股竞价 昨日涨停 板块轮动 题材库 失效问题