尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【UE源码向】GameplayTag增加ToolTip

【UE源码向】GameplayTag增加ToolTip
📅 发布时间:2026/6/19 22:54:25

GamepayTag 的 ToolTip 增加 DevComment

  • 我想绝大部分的 UE 项目都会大量使用到 GameplayTag 的功能,主要是用来做一些功能分类、状态标记和资产引用。
  • 问题:在引擎的早期版本中(< 5.6),GameplayTag 的鼠标悬浮提示只会显示 GameplayTag 的名字,而不会显示其对应的开发者功能描述(即创建Tag时手动填入的共功能说明)。
  • 我自己早前支持了这个符合直觉的显示,最近发现新版引擎官方的代码也合入了某个开发者的修改,代码很类似,如果有项目是低版本引擎,不妨也合入或者直接改代码支持一下,还是挺好用的。

直接上手

这里就不放我的修改了,和UE官方的类似,我们直接看代码
官方 GitHub PR 修改

  • 新增获取 TagNode DevComment 的接口
    // 在 GameplayTagsManager.h 中的 FGameplayTagNode 结构体中新增接口,下面会调用到
    #if WITH_EDITORONLY_DATA/** Returns the Comment for this tag */FString GetDevComment() const { return DevComment; }
    #endif
    
  • 先支持单个 FGameplayTag 的 DevComment 显示
    // 在 SGameplayTagCombo.cpp 中修改 SGameplayTagCombo::GetToolTipText(),主要是后半部分,将 TagName 和 DevComment 拼起来显示
    FText SGameplayTagCombo::GetToolTipText() const
    {FGameplayTag TagToDisplay;if (PropertyHandle.IsValid()){return TagsFromProperty.IsEmpty() ? FText::GetEmpty() : FText::FromName(TagsFromProperty[0].GetTagName());TagToDisplay = (TagsFromProperty.Num() > 0) ? TagsFromProperty[0] : FGameplayTag();}else{TagToDisplay = TagAttribute.Get();}TSharedPtr<FGameplayTagNode> TagNode = UGameplayTagsManager::Get().FindTagNode(TagToDisplay);if (TagNode.IsValid() && !TagNode->GetDevComment().IsEmpty()){// 这里加了两个换行符,一个换行更好看些return FText::FromString(FString::Printf(TEXT("%s\n\n%s"), *TagToDisplay.ToString(), *TagNode->GetDevComment()));}else{return FText::FromName(TagToDisplay.GetTagName());}return FText::FromName(TagAttribute.Get().GetTagName());
    }
    
  • 再支持 GameplayTagContainer 的 DevComment 显示
    // 1. 在 SGameplayTagContainerCombo.h 中SGameplayTagContainerCombo 类中 新增函数用于获取某个 Tag 的 ToolTip
    FText GetTagToolTipText(const FGameplayTag TagToDisplay) const;// 2. 在 SGameplayTagContainerCombo.cpp 中SGameplayTagContainerCombo类中实现
    FText SGameplayTagContainerCombo::GetTagToolTipText(const FGameplayTag TagToDisplay) const
    {TSharedPtr<FGameplayTagNode> TagNode = UGameplayTagsManager::Get().FindTagNode(TagToDisplay);if (TagNode.IsValid() && !TagNode->GetDevComment().IsEmpty()){// 同样这里的两个换行有点多余,一个即可return FText::FromString(FString::Printf(TEXT("%s\n\n%s"), *TagToDisplay.ToString(), *TagNode->GetDevComment()));}else{return FText::FromName(TagToDisplay.GetTagName());}
    }// 3. 把ToolTip的获取回调函数用上,在 SGameplayTagContainerCombo::MakeTagListViewRow 函数里将 ToolTipText 的回调绑定为2中新增的函数
    .ToolTipText(this, &SGameplayTagContainerCombo::GetTagToolTipText, Item->Tag)
    

效果

img

相关新闻

  • 基于c++ eigen的Nelder-Mead算法(仿照scipy)
  • 2D3D-MATR论文学习
  • 2025 年 11 月石笼网厂家最新推荐,实力品牌深度解析采购无忧之选!

最新新闻

  • 2026长沙防水补漏权威指南:卫生间/屋面/外墙/地下室正规施工+透明报价+避坑全攻略 - 苏易修缮
  • 爱回收靠谱吗?一个测评博主的深度复盘 - 新闻快传
  • 2026昆山建筑修缮行业全景分析:昆山鼎壹万防水补漏公司及本地适配服务商深度指南 专业防水公司排名推荐(2026年6月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • 六安7年烘焙老店|三个叔叔手工吐司文庙街店:用心做好每一款生日蛋糕 - 速递信息
  • 2026合肥防水补漏权威指南:卫生间/屋面/外墙/地下室正规施工+透明报价+避坑全攻略 - 苏易修缮
  • 爱回收买iPad靠谱吗?质检与售后逐项看 - 新闻快传

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号