游戏性效果容器

GameplayEffectContainer(游戏效果容器)

原始实现

GGA也实现了如同此部分文档描述的GameplayEffectContainer。

gga guide 33

GGA中的Container

不同之处在于,你可以在游戏中的任意地方使用Container,而不仅仅只是在Ability内部。

你可以通过GGA_GameplayEffectContainerFunctionLibrary访问相关的API。

gga guide 34

同时在Targeting部分,我摒弃了原始实现中提到的“TargetType”方式,转而采用UE5.2提供的“Gameplay Targeting System”。

使用方式

你可以忘记上面两段话的内容,并只看这部分。简单来说:

GameplayEffectContainer:是一个简单的结构体,可以定义一个TargetingPreset和多个GameplayEffect,你可以把它理解为“一堆游戏效果的定义”以及获取目标的“目标定位预设”。

GameplayEffectContainerSpec:是GameplayEffectContainer的实例,它包含一个TargetData字段(来自TargetingPreset获取的目标结果),以及TargetGameplayEffectSpecs字段(Container中定义的多个GameplayEffect的实例)。

当你应用一个GameplayEffectContainerSpec时,你就是批量将多个GameplayEffectSpec给应用到TargetData中的所有Actor上。

最简单的使用流程如下:

gga guide 35
大多数情况下,推荐使用这种方式为多个目标同时应用多个游戏效果,它效率更高。
请先尝试制作简单的陷阱Actor,给进入的玩家用Container的方式施加GE。 Container底层还会用到GameplayTargetingSystem,用来获取目标的,把它也得先搞明白。然后再尝试下面的制作近战流程。