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