I am new to these forums, and this is my first Unreal project. I am stuck on this issue of attaching, detaching, and reattaching one blueprint to another.
My project is an escape room, and I need to have a backpack with a lock on it. The backpack and lock should move together. If the lock is selected, it detaches and flies to the player for inspection. Then it needs to fly back to the backpack and reattach.
The backpack and lock are both blueprints. I successfully attached the lock to the backpack with a Child Actor component, and I can use Detach From Actor to remove the lock from the backpack and fly it to the player. But how do I reattach it to the backpack??
I have tried reattaching with “Attach Actor to Actor”, and with “Set Owner”, but neither work. The lock doesn’t move with the backpack afterward. (FYI: The backpack is a physics actor).
there is 2 reasons I can think of where an attach could fail:
you try to attach a static object to a movable object
the 2 objects you try to attach together don’t belong to the same sublevel
But you should have an error in the logs, is that the case?
If not, are you sure they are not attached? You fly back the lock to the backpack, that mean you temporarily control the lock’s transform. Are you sur this code is stopped once the lock is back in place? If not the attach could have worked but if you’re still updating the actor’s transform it will look like the attach failed
Thanks for the link.
You mentioned the backpack has physics simulation enabled, but I see that in your Pl_Backpack blueprint, backpack_Cube_2 which is your simulated mesh is not the root component of the blueprint. That means that the backpack mesh will move but it won’t affect the transform of your actor.
If you attach the lock back to the actor, it will be attached to the root component of your blueprint (DefaultSceneRoot). So your attach is probably successful but technically the actor doesn’t move, only the backpack mesh does.
To fix that, you can either:
use “Attach Actor To Component” and use backpack_Cube_2 as the parent
or in your Pl_Backpack blueprint set backpack_Cube_2 as the root component so the physics simulation can move your actor