Hi! We’ve encountered an issue with Niagara particle systems’ Deactivate functionality when shaders for it are not yet compiled. Basically before they are Deactivate does nothing for the system. bAwaitingActivationDueToNotReady will be true and as soon as ready it’ll start and will stay stuck that way. For example in case of UAnimNotifyState_TimedNiagaraEffect created ones.
We found solution but wanted to validate with you on that.
In UNiagaraComponent::DeactivateInternal, in else branch of “if (IsActive() && SystemInstanceController)” if statement:
if(UNiagaraSystem* NiagaraSystem = Asset.Get())
{
if (bAwaitingActivationDueToNotReady || !IsWorldReadyToRun())
{
Super::Deactivate();
bAwaitingActivationDueToNotReady = false;
OnSystemComplete(true);
return;
}
}
Thank you