Hi.
I am on UE 4.5.
I have the following two actors configured as shown in the screenshot below. Both actors have SimulatePhysics = true and SimulationGenerateHitEvents = true on their RootComponent which is BoxComponent (collider). The StaticMeshComponent inside the [Root] has collisions disabled.
Actor1 is of type WorldStatic listening for Hit events when collided with the playerBullet. playerBullet is a custom trace channel.
Actor2 is of type playerBullet that the player fires toward Actor1. When they come in contact none of the mentioned events gets fired :(.
However, if I change the collision response to overlap, I receive the following callback without any problem:
virtual void ReceiveActorBeginOverlap(AActor* OtherActor) OVERRIDE;
In C++ code, I override the ReceiveHit method
virtual void ReceiveHit(class UPrimitiveComponent* MyComp, AActor* Other, class UPrimitiveComponent* OtherComp, bool bSelfMoved, FVector HitLocation, FVector HitNormal, FVector NormalImpulse, const FHitResult& Hit) OVERRIDE;
And, hooked the OnComponentHit as below
void AAIBeaconConnection::PostInitializeComponents()
{
Super::PostInitializeComponents();
Collider = Cast<UBoxComponent>(RootComponent);
Collider->OnComponentHit.AddDynamic(this, &AAIBeaconConnection::OnHit);
}
I tried several other combinations but fail to get any of these events. I could work with overlap events but I would like to establish a clear distinction between blocking and non-blocking gameobjects in my game.
Any help is greatly appreciated!!