Skip to content

Commit 7701438

Browse files
fix
This resolves the issue where instantiating, spawning, and parenting a child NetworkObject during a to-be parent's OnNetworkSpawn or OnNetworkPostSpawn would not defer the parenting message properly if the parent had yet to be spawned.
1 parent c23350b commit 7701438

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

com.unity.netcode.gameobjects/Runtime/Messaging/Messages/ParentSyncMessage.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,14 @@ public bool Deserialize(FastBufferReader reader, ref NetworkContext context, int
8888
networkManager.DeferredMessageManager.DeferMessage(IDeferredNetworkMessageManager.TriggerType.OnSpawn, NetworkObjectId, reader, ref context);
8989
return false;
9090
}
91+
92+
// If the target parent does not exist, then defer this message until it does.
93+
if (LatestParent.HasValue && !networkManager.SpawnManager.SpawnedObjects.ContainsKey(LatestParent.Value))
94+
{
95+
networkManager.DeferredMessageManager.DeferMessage(IDeferredNetworkMessageManager.TriggerType.OnSpawn, LatestParent.Value, reader, ref context);
96+
return false;
97+
}
98+
9199
return true;
92100
}
93101

0 commit comments

Comments
 (0)