Skip to content

Commit d97ce93

Browse files
committed
Ensure messages are deferred until after the client is fully connected and synchronized
1 parent a9318a3 commit d97ce93

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public bool Deserialize(FastBufferReader reader, ref NetworkContext context, int
112112
}
113113

114114
// Client-Server mode we always defer where in distributed authority mode we only defer if it is not a targeted destroy
115-
if (!networkManager.DistributedAuthorityMode || (networkManager.DistributedAuthorityMode && !IsTargetedDestroy))
115+
if (!networkManager.DistributedAuthorityMode || !networkManager.IsConnectedClient || (networkManager.DistributedAuthorityMode && !IsTargetedDestroy))
116116
{
117117
networkManager.DeferredMessageManager.DeferMessage(IDeferredNetworkMessageManager.TriggerType.OnSpawn, NetworkObjectId, reader, ref context, k_Name);
118118
}

com.unity.netcode.gameobjects/Runtime/SceneManagement/NetworkSceneManager.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,12 @@ internal bool ShouldDeferCreateObject()
657657
{
658658
return false;
659659
}
660+
661+
if (!NetworkManager.IsConnectedClient)
662+
{
663+
return true;
664+
}
665+
660666
var synchronizeEventDetected = false;
661667
var loadingEventDetected = false;
662668
foreach (var entry in SceneEventDataStore)

0 commit comments

Comments
 (0)