GameplayTag本来是应用在GAS游戏技能系统里面的,后来UE直接将其抽离出来,作为一个模块,现在可以不在GAS里也可以使用这个模块。比如,我需要判断一个射线拾取的物体,首先我需要判断这个actor是否存在,然后判断是否是对应类型,如果我们使用GameplayTag,直接判断拾取的actor上面是否含有对应标签,可以提高性能。
GameplayTag也不是单纯的字符串标签,而是一种具有层级结构的对象,可以用作识别、匹配、分类或过滤易于管理,而且完全支持自定义结构。
在GAS中,我们可以根据标签来设置技能或者GE之间的关系,比如角色在眩晕状态下,会附加一个状态标签,如果要施放一个技能时,这个标签会阻止技能的施放。
你可以将标签应用到输入,技能,属性,伤害类型,buff,消息通知,数据等等方面。
创建游戏标签
打开项目设置,在左侧找到GameplayTags
通过点击管理Gameplay标签来编辑标签,或者新增Gameplay标签源文件进行修改
打开标签管理器,可以增加新的标签,并且编写对应的注释和源文件
这里我们将之前用到的四个属性都添加到标签中,并且都存到了DefaultGameplayTags.ini中
这个文件存到了项目的Config文件夹中
用记事本打开这个文件的样子
如果你修改了这里的内容,需要重新启动编辑器来更新编辑器内的显示。
使用数据表格创建游戏标签
首先右键创建数据表格
数据表结构这里选择GameplayTagTableRow
这个数据表英文为DataTable,所以我们以DT为前缀,设置DT_PrimaryAttributes用于存储主要属性
点击上方的添加
在下方输入tag和描述
下面是我添加的几个属性
点击新增一个标签列表
设置刚才制作的数据表格
然后打开标签管理器查看