I’ve got a collision issue with attaching and detaching actors. I’ve been struggling with seemingly random issues for about 5 days and finally nailed it down to this simple case. I’ve got a chain of actors attached to each other. Now I want to detach the parent of the whole group. So I detach the actors that are directly connected to the parent. But then all the sub-children no longer have collision. In fact it seems like the collision of those meshes stays with the parent, in this case cube 4. Why is that, and how can I fix that? The actors are simple blueprint actors with a static mesh components as root and they are simulating physics. Detaching actors, that have nothing attached to them (like 18 or 16) works just fine, everything behaves as expected.
Any help is appreciated.
Thanks for your reply.
- This occurs in a blank project
- The actors are set to movable
- The collision is still shown at the static mesh of each cube, even at those who don’t collide with anything. The “ghost collision” at the initial parent is not visible at all.
I have packaged a simple blank project for you, showcasing the issue. If you play in editor and fly close to the cubes, after they have detached, you experience the invisible collision where some of the child cubes have been before detaching. And you can clearly see them sticking through the floor.
I was able to reproduce this on my end and have entered a bug report, UE-32531, to be assessed by the development staff.
Thank you Adam.
Just in case someone else is running into this bug. There’s a workaround I’m going to try and implement until this bug is fixed. You save which actor is attached to which (basically save the whole attachment tree), you detach the actors, which have nothing attached to them, and continue to detach the tree from the bottom up until you reach the root. Then you reattach all the actors the same way they were organized before, except you don’t attach anything to the previous root. This way you detached the root and the collision behavior should be working fine, as expected.