Skip to content

Commit 9de5c1d

Browse files
committed
fix: Soft sync objects not being despawned on client
Fixes: #244
1 parent a626092 commit 9de5c1d

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

MLAPI/Core/NetworkingManager.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,7 @@ private void Shutdown()
575575
IsServer = false;
576576
IsClient = false;
577577
SpawnManager.DestroyNonSceneObjects();
578+
SpawnManager.ServerResetShudownStateForSceneObjects();
578579

579580
if (NetworkConfig != null && NetworkConfig.NetworkTransport != null) //The Transport is set during Init time, thus it is possible for the Transport to be null
580581
NetworkConfig.NetworkTransport.Shutdown();

MLAPI/Spawning/SpawnManager.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,20 @@ internal static void UnSpawnObject(NetworkedObject netObject)
433433
OnDestroyObject(netObject.NetworkId, false);
434434
}
435435

436+
// Makes scene objects ready to be reused
437+
internal static void ServerResetShudownStateForSceneObjects()
438+
{
439+
for (int i = 0; i < SpawnedObjectsList.Count; i++)
440+
{
441+
if ((SpawnedObjectsList[i].IsSceneObject != null && SpawnedObjectsList[i].IsSceneObject == true) || SpawnedObjectsList[i].DestroyWithScene)
442+
{
443+
SpawnedObjectsList[i].IsSpawned = false;
444+
SpawnedObjectsList[i].DestroyWithScene = false;
445+
SpawnedObjectsList[i].IsSceneObject = null;
446+
}
447+
}
448+
}
449+
436450
internal static void ServerDestroySpawnedSceneObjects()
437451
{
438452
for (int i = 0; i < SpawnedObjectsList.Count; i++)

0 commit comments

Comments
 (0)