Consider a C++ ActorComponent containing an instanced TObjectPtr property (which may be standalone or inside a container such as TMap). Now consider a Blueprint Actor containing such a component, and instances of this actor on the following situations (all with properties unchanged from the defaults):
(A) A basic level (persistent)
(B) A basic level included as a sublevel of the persistent level
(C) A world-partition level (persistent)
(D) A world-partition level instanced inside the persistent level
The instanced property of the ActorComponent can be edited inside the Blueprint Editor for the Actor. In particular, we are able to use the combo box in the details panel to select different assets of the class specified by the TObjectPtr, and an object of that class is instanced automatically by the engine.
The asset change mentioned above is correctly propagated to instances of the BP actor in the currently open level and any of its sublevels. However, it is not correctly propagated to levels instanced inside the currently open level. It is also not correctly propagated to any kind of level if it is not currently loaded. Note that such propagation is successfully achieved, even for unloaded levels, when changing non-instanced properties of any type (e.g. float, int32, TObjectPtr<UTexture2D>).
An internal repro project was provided.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-212749 in the post.
20 |
Component | UE - Gameplay - Blueprint |
---|---|
Affects Versions | 5.3.2 |
Target Fix | 5.6 |
Created | Apr 19, 2024 |
---|---|
Updated | Nov 7, 2024 |