Undo fills AttachChildren array with null by the undo serializer.
After that, a construction script tries to remove child components from parent component's AttachChildren but it can't find its pointer.
To apply NonTransactional option in the UPROPERTY on the AttachChildren fixes this issue.
// USceneComponent /** List of child SceneComponents that are attached to us. */ UPROPERTY(ReplicatedUsing = OnRep_AttachChildren, Transient, NoTransactional/*Added*/) TArray<USceneComponent*> AttachChildren;
-------------------------------------------------------------------
LogTemp: NumChildren:20 NumStaticMeshes:20
Cmd: TRANSACTION UNDO
LogEditorTransaction: Undo Edit Num Of Meshes
LogTemp: NumChildren:20 NumStaticMeshes:10
-------------------------------------------------------------------
The following screenshot displays the broken array.
[Image Removed]
[Link Removed]
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-84403 in the post.
0 |
Component | UE - Gameplay - Components |
---|---|
Affects Versions | 4.22 |
Created | Nov 14, 2019 |
---|---|
Updated | Dec 5, 2023 |