Description

Licensee reports the following in the UDN:

There seems to be some other erratic behavior when using parenting in world outliner (i.e. drag and drop one actor on another one in world outliner).

  • Since the "parenting" is done in a way that it's the child that knows its parent.
  •  Moving the parent will not update the child actor in the World Partition Editor hash to add and remove actor to cell. So, if the child actually changes the cell when moving the parent then it will not update.
  •  While removing and unloading some actor, you can end up having an actor handle that point to a null actor in the cell. It does crash in our current version (lastest green) and not on the UE5 main branch since some validation was added or some check was removed but the dangling handle remains (normal?).

 

Some repro for the dangling handle using UE5 main @ 18206048:

add breakpoint in UWorldPartitionEditorCell::AddActor Add UWorldPartitionEditorCell::RemoveActor to monitor Actors list

 

0 - Create a new empty open world 

1- Add a static mesh actor

2- Add again a static mesh actor ( i used the same for my test )

3- Reparent the second one to the first one

4- Save the World

5- Reload the world

6- Delete the parent 

7- Delete the remaining Child

8- Save

9- There is a leftover Actor in the Actors of the cell that contains a null handle

 

Attached is a video for the moving actor update.

Also ended up corrupting some data and moving 2 totally different actors in the world would update the same one in the world partition windows.

But Could not reproduce it again... But it all come down to messing up with the parented Actor and deleting/unloading/reloading the cell.

Pretty sure there might be some other weak spot that is not handling this kind of parenting

 

Steps to Reproduce
  • Create a new empty open world.
  • Add 2 static mesh actors to the scene.
  • Reparent the second one to the first one (drag and drop one of them to be underneath the other in the world outliner).
  • Save the World.
  • Reload the world.
  • Delete the parent.
  • Delete the remaining Child.
  • Save.
  • There is a leftover Actor in the Actors of the cell that contains a null handle.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-135721 in the post.

8
Login to Vote

Unresolved
Main Commit18424186
CreatedNov 23, 2021
ResolvedDec 2, 2021
UpdatedFeb 13, 2024