Using the GAS system, I added LooseGameplayTags in my PostGameplayExecute() in C++ for when Health Attribute changes to different thresholds. I want to implement a movement speed change as well as other things for when these tags are added to the character. So I made a GA_ that is a passive ability and put in several Ability Tasks (Wait for GameplayTag) inside. The problem is this seems expensive and poorly optimized, so I changed it to be a regular GA_ that uses Ability Triggers which fire off when a certain tag is added to the character. Unfortunately, the Ability Trigger section does not offer a Remove AbilityTag Trigger - only an Add AbilityTag Trigger. Therefore, I had to add more tags in my PostGamePlayExecute() so that there is always a tag being applied no matter health threshold there is. My question is, what is better efficiency wise? - using the passive ability with multiple Ability Tasks, or using the Ability Trigger option with more GameplayTags needed and so more if checks in my PostGameplayExecute().
p.s. Is there an AbilityTask that waits and checks for multiple gameplay tags? I only see one that check 1 tag and hooking a container or array to it is not allow.
1 Like