I am trying to spawn an Emitter with the default UE4 Explosion but it seems I am doing something wrong…
void AProyectil::NotifyHit(UPrimitiveComponent * MyComp, AActor * Other, UPrimitiveComponent * OtherComp, bool bSelfMoved, FVector HitLocation, FVector HitNormal, FVector NormalImpulse, const FHitResult & Hit)
{
Super::NotifyHit(MyComp, Other, OtherComp, bSelfMoved, HitLocation, HitNormal, NormalImpulse, Hit);
static ConstructorHelpers::FObjectFinder<UParticleSystem> Particle(TEXT("/Game/StarterContent/Particles/P_Explosion.P_Explosion"));
if (Particle.Succeeded())
{
UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), Particle.Object, GetActorLocation());
}
Destroy();
}
this code result in an editor crash, please can someone tell me why?
Chris528
(Chris528)
2
ConstructorHelpers::FObjectFinder can only be called in the constructor. You should try something like the following.
In header
UParticleSystem* ParticleFX1
In constructor
static ConstructorHelpers::FObjectFinder<UParticleSystem> Particle(TEXT("/Game/StarterContent/Particles/P_Explosion.P_Explosion"));
ParticleFX1 = Particle.Object;
In NotifyHit function
if(ParticleFX1)
UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), ParticleFX1, GetActorLocation());
1 Like
That was exactly the problem, Thank you very much !