Skip to content

Commit 480d44f

Browse files
committed
Adding IsSpawned check to remove WaitBeforeSendingRPC
1 parent a3f7e2a commit 480d44f

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/LoadingProgressManager.cs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,14 @@ void UpdateTrackersClientRpc()
9898
ProgressTrackers.Clear();
9999
foreach (var tracker in FindObjectsOfType<NetworkedLoadingProgressTracker>())
100100
{
101-
ProgressTrackers[tracker.OwnerClientId] = tracker;
102-
if (tracker.OwnerClientId == NetworkManager.LocalClientId)
101+
// If a tracker is despawned but not destroyed yet, don't add it
102+
if (tracker.IsSpawned)
103103
{
104-
LocalProgress = Mathf.Max(m_LocalProgress, LocalProgress);
104+
ProgressTrackers[tracker.OwnerClientId] = tracker;
105+
if (tracker.OwnerClientId == NetworkManager.LocalClientId)
106+
{
107+
LocalProgress = Mathf.Max(m_LocalProgress, LocalProgress);
108+
}
105109
}
106110
}
107111
}
@@ -127,15 +131,8 @@ void RemoveTracker(ulong clientId)
127131
var tracker = ProgressTrackers[clientId];
128132
ProgressTrackers.Remove(clientId);
129133
tracker.NetworkObject.Despawn();
130-
// This makes sure that clients received the Despawn message before the RPC.
131-
StartCoroutine(WaitBeforeSendingRPC());
134+
UpdateTrackersClientRpc();
132135
}
133136
}
134-
135-
IEnumerator WaitBeforeSendingRPC()
136-
{
137-
yield return null;
138-
UpdateTrackersClientRpc();
139-
}
140137
}
141138
}

0 commit comments

Comments
 (0)