Нереальный ГАЗ: как убрать стоимость GameplayEffect с бесконечной продолжительностью - PullRequest
0 голосов
/ 17 октября 2018

У меня есть GameplayAbility GA, который имеет стоимость GameplayEffect GE_cost,GE_cost имеет бесконечную продолжительность с периодом 1,0 секунды.GA применяется к целевому действующему субъекту MyActor.

Нереальная система игровых способностей применяет GE_cost к MyActor, когда вводится GA (GA::CommitAbility()),Однако после вызова GA::EndAbility() (который завершает выполнение GA), GE_cost все еще выполняется с MyActor каждую секунду.

Теперь я хотел бы иметь возможность удалить (илистоп) GE_cost, что приводит меня к следующим вопросам:

  1. GA <-> GE_cost вопрос времени жизни
    1. Является ли время жизни GE_cost независимым от времени выполнения GA?(очевидно, да)
    2. Является ли время жизни GE_cost независимым от времени применения GA?(т.е. будет GE_cost выполняться непрерывно, даже если GA удалено из MyActor?)
    3. Так считается ли применение cost GameplayEffect рассматриваемымвыстрелить и забыть, как и с любым другим GameplayEffect , созданным с помощью GameplayAbility (например, с ApplyGameplayEffectToOwner())?
  2. Как удалить стоимость GameplayEffect с бесконечной продолжительностью?
    1. UGameplayEffect::OngoingTagRequirements кажется единственным способом использования GameplayTags , чтобы отключить GameplayEffect с (бесконечной) продолжительностью после его применения.Однако отключение GameplayEffect 'off' не приводит к его удалению?
    2. Единственный способ удалить примененный бесконечный GameplayEffect , это использовать один из RemoveGameplayEffect*()функции?
...