In this article, we explain everything to do with collisions, overlaps, and traces.
Related Material
Special Behavior
There is some unexpected (at least for me) behavior that might be confusing at first:
- Collision detection (blocking) while sweeping an Actor seems to work only for translation and not for rotation. (UE 2.26) That is,
bSweep=true
inAActor::AddActorLocalRotation
does not trigger collision detection, while forAActor::AddActorLocalOffset
it works fine. In the documentation ofAActor::AddActorWorldRotation
it even says that it is “not currently supported for rotation.” - When sweeping an
AActor
withAActor::AddActorLocalOffset
orAActor::AddActorWorldOffset
, collision will only be calculated for its root component. All other components will not trigger collision events. For example, if we have a UCapsuleComponent as the RootComponent and a UStaticMeshComponent attached to it, the UCapsuleComponent will block movement on collision with other actors, while the MeshComponent will clip through other actors. - When scaling a Component in one or two dimensions, the collision volume seems to stay on the unscaled version.