THANK YOU!
Kinematic sweep is exactly what we needed for our non-physics moveable objects.
Now I just need to figure out how to trigger kinematic sweep when the moving object is bound to the socket of a moving parent, or set at the child of a moving parent.
We’re you ever able to resolve this?
It effectively makes hierarchical parenting as well as sockets useless for our application as there appears to be no way to have a child objects inherited movement trigger kinematic hit collisions.
Update: For future Googlers, while UE has the concept of kinematic sweeping when using the SceneComponent
> SetWorldLocation
or SetWorldTransform
functions/nodes, UE does not appear to actually implement sweeping when the components transform is updated from either child/parent hierarchy, or when the child is bound to a parents socket.
The workaround is to have the actors as siblings where the ‘child’ actor has it’s transform set to match that of the ‘parent’ each tick using SceneComponent
> SetWorldLocation
or SetWorldTransform
. This will ensure that kinematic hit collisions are calculated when the collision preset is set to block.
The child collider can/will still get ‘stuck’ on colliders if the parent can pass though. If that behavior isn’t desired, or you want both hit and overlap. You’ll need to change the child collision detection from hit to overlap when the hit occurs, and then change back to hit when the overlap ends.