OnComponentHit notification for child component without physics enabled

Is it possible to get OnComponentHit notifications where the arguments passed to the delegate are the child components of the scene root component without turning on Simulate Physics on the child components?

Imagine a simple component hierarchy like this no
Static Mesh (Scene Root Component, Simulate Physics Enabled)
|-> Static Mesh Child (Simulate Physics Disabled)

Both the root and the child are set to generate hit events and a handler is registered with the OnComponentHit delegate on both components. If I enable Simulate Physics on both the root and the child my handler will be called with different hit components (first argument) depending on which component actually got hit. However, if Simulate Physics is disabled on the child the handler will always receive the root component as the first argument even if it is the child component that is actually colliding.

Is there anything I can do to get the child components passed to the OnComponentHit handler without enabling physics on it?

Many thanks!

1 Like

Were you able to figure this one?

I am in a similar position, where I have many static mesh components attached to a root component. That root component triggers but events, however the children static mesh components do not.

The weird thing is, the children static mesh components do trigger their overlay events.

My use case is a plane with many parts, for example, a wing, cockpit, fuselage, engine, etc. When the wing hits something, I want to deal damage to that wing. Each part has its own healthbar. However the wing is not triggering it’s own hits. It is however triggering overlaps - for example, I deal damage to it when it passes through fire.

Physics is simulated on the root, but not the children, just as yours is.

I am going to go with a workaround for now - draw a multi line trace from the root component to the hit, and process the the last hit. This should produce an identical result, but thats another trace I would rather not do.