UObject* Outer

I saw many functions from UE require “outer” parameter. Its type is UObject*. What is it really and why does UE really need this parameter?

SetStaticMesh() function is an example which require this paramter. If I set its “outer” value to its own UStaticMeshComponent object, does it mean that if I destroy the static mesh component, the UStaticMesh will also be destroyed or garbage collected?

Here’s one explanation.

Thanks CleanCut, that’s a good explanation. But does it get garbage collected when an object is no longer pointed its “outer” object?

What happens when its “outer” is destroyed?

After more than 1 year, it seems like no one is able to answer this

Yes, it will get Garbage Collected, on BeginDestroy() event.So basically all children will be garbage collected when the outer dies.