虚幻GAS:如何无限期删除费用GameplayEffect

时间:2018-10-16 22:23:25

标签: unreal-engine4 unreal-gameplay-ability-system

我有一个GameplayAbility GA,其中分配了 cost GameplayEffect GE_costGE_cost的持续时间为1.0秒。 GA应用于目标演员MyActor

GE_cost被提交(MyActor)时,Unreal Gameplay Ability SystemGA应用于GA::CommitAbility()。但是,在调用GA::EndAbility()之后(结束GA的执行),GE_cost仍然每秒MyActor执行一次。

现在,我希望能够删除(或停止)GE_cost,这使我想到以下问题:

  1. GA <-> GE_cost终身问题
    1. GE_cost的生存期是否独立于GA的执行时间? (显然是)
    2. GE_cost的生存时间是否独立于GA的应用时间? (即即使GE_costGA中删除了,MyActor也会被连续执行吗?)
    3. 创建的任何其他 GameplayEffect 一样,认为 cost GameplayEffect 的应用也被认为是一劳永逸的游戏玩法(例如ApplyGameplayEffectToOwner())?
  2. 然后如何删除无限长的成本 GameplayEffect
    1. UGameplayEffect::OngoingTagRequirements似乎是使用GameplayTags来关闭(无限)持续时间的 GameplayEffect 的唯一方法。但是,关闭 GameplayEffect 不会删除吗?
    2. 删除已应用的无限 GameplayEffect 的唯一方法是使用RemoveGameplayEffect*()函数之一?

0 个答案:

没有答案