AActor::K2_AttachToComponent
#include "GameFramework/Actor.h"
Access: public
Specifiers: UFUNCTIONBlueprintCallable
Description
Attaches this actor's root component to a given scene component, with fine-grained control over how transform rules are applied. Returns true on success. This is the Blueprint-callable version of AttachToComponent().
Caveats & Gotchas
- • Welding physics bodies (bWeldSimulatedBodies=true) transfers collision shapes into the parent and can cause permanent physics changes that persist after detaching — only weld when the attached actor will never need to simulate independently again.
- • The target component must be registered (i.e. the actor must be in the world and its components initialized); calling this in a constructor or before BeginPlay on an unregistered component will fail silently.
- • KeepWorld vs SnapToTarget rules produce very different results at runtime — SnapToTarget zeros out the relative transform, which may visually teleport the actor if it wasn't already at the socket.
Signature
ENGINE_API bool K2_AttachToComponent(USceneComponent* Parent, FName SocketName, EAttachmentRule LocationRule, EAttachmentRule RotationRule, EAttachmentRule ScaleRule, bool bWeldSimulatedBodies); Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| Parent | USceneComponent* | The component to attach this actor's root component to. | — |
| SocketName | FName | Optional socket on the parent component to attach to. | — |
| LocationRule | EAttachmentRule | How to handle the actor's translation when attaching. | — |
| RotationRule | EAttachmentRule | How to handle the actor's rotation when attaching. | — |
| ScaleRule | EAttachmentRule | How to handle the actor's scale when attaching. | — |
| bWeldSimulatedBodies | bool | Whether to weld simulated physics bodies together on attach. | true |
Return Type
bool Example
Attach a weapon actor to a character's hand socket C++
AWeapon* Weapon = GetWorld()->SpawnActor<AWeapon>(WeaponClass);
if (Weapon)
{
Weapon->K2_AttachToComponent(
GetMesh(),
FName("hand_r_socket"),
EAttachmentRule::SnapToTarget,
EAttachmentRule::SnapToTarget,
EAttachmentRule::KeepRelative,
false
);
} Version History
Introduced in: 4.12
| Version | Status | Notes |
|---|---|---|
| 5.6 | stable | — |
Feedback
Was this helpful?