I’m looking for confirm some odd behavior. Is it a bug? A shortcoming? Or am I doing something very wrong?
I create a packed level actor from some actors in in Scene_A.
This results in the creation of a packed level level, Scene_B, and a packed level actor BP_Scene_B.
So far so good.
I edit the BP, BP_Scene_B and modify the ConstructionScript. In that script, I reference one of the HierarchicalInstancedStaticMesh components and do something to it. Such as change a material. I save it out.
If I go back into Scene_A and play with the instance of BP_Scene_B, I can see the material change when I make changes to the instance, as I should.
All good so far.
However, if I decide to add a new detail static mesh to Scene_B, it doesn’t automatically propogate to BP_Scene_B. However, if I go to the build menu and use “Pack Level Actors”, the system updates BP_Scene_B to contain components for the newly added static mesh. This makes sense even if the extra step seems possibly redundant.
The problem however, is that the ConstructionScript breaks. Specifically, the reference to the existing HierarchicalInstancedStaticMesh is broken. And this causes an error to be thrown upon Construction. It breaks the BP_Scene_B.
I think what’s going on, is that the original HierarchicalInstancedStaticMesh is being destroyed and recreated, without the references being updated to the new component. Indeed, if I just create a new component and substitute it, things work again. Right up until I decide to add a new mesh or some other change to Scene_B, which neccesitates the usage of the project wide “Pack Level Actors” tool again.
So, is this a bug? A shortcoming? Am I doing something wrong? Am I doing a thing that’s explicitly bad practice? Thoughts? This is in 5.1p2.