UE4中的GameplayTag:使用层级概念标签来管理对象

时间:2024-04-13 13:02:30

简介:

GameplayTag原本是用在GAS(GameplayAbilitySystem,技能系统插件)中,但是现在出现在UE4默认类型中,明显GameplayTag可以用在其它很多地方。与Actor Tag或Component Tag等字符串类型的Tag不同, GameplayTag更像是与Category一样具有层级结构,因此可以用作识别、匹配、分类或过滤对象。

  • 优点:使用概念标签给对象快速归类,便于管理。
  • 缺点:完全由用户自定义,需要设计一个好的分类结构,才能发挥作用。

详细说明可查看官方说明文档(包含GameplayTag的创建,删除,管理,查询),下面简单介绍一下相关类型。

相关类型:

在编辑器中新建变量可以看到与GameplayTag的类型如下:
UE4中的GameplayTag:使用层级概念标签来管理对象

GameplayTag:

  • 层级概念标签,编辑器中可以看到对它做了完整的可视化编辑
  • 可在Project Setting->GameplayTags、.ini文件、DataTable、变量细节面板中创建和编辑
  • 里面保存了一个FName作为TagName
    UE4中的GameplayTag:使用层级概念标签来管理对象

GameplayTagContainer:

  • GameplayTag的容器,对于有多个GameplayTag的对象,可改用GameplayTagContainer代替

GameplayTagQuery:

  • 作用于GameplayTagContainer的复杂匹配
    UE4中的GameplayTag:使用层级概念标签来管理对象
    UE4中的GameplayTag:使用层级概念标签来管理对象

GameplayTagTableRow:

  • 用于创建数据表格,方便创建GameplayTag,需要在Gameplay Tag Setting引用生效。
  • 感觉没什么用
    UE4中的GameplayTag:使用层级概念标签来管理对象
    UE4中的GameplayTag:使用层级概念标签来管理对象

总结:

GameplayTag创建和使用都比较方面,使用它最主要的问题还是,如何为一组对象设计一个好的层级分类结构。