Skip to content

Commit ee28dde

Browse files
committed
Update search for owner of child object on disconnect
1 parent 740a9b1 commit ee28dde

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

com.unity.netcode.gameobjects/Runtime/Connection/NetworkConnectionManager.cs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,12 +1259,22 @@ internal void OnClientDisconnectFromServer(ulong clientId)
12591259
continue;
12601260
}
12611261

1262-
if (!ownedObject.Observers.Contains(targetOwner))
1262+
var childOwner = targetOwner;
1263+
if (!childObject.Observers.Contains(childOwner))
12631264
{
1264-
targetOwner = ownedObject.Observers.First();
1265+
for (int j = 0; j < remainingClients.Count; j++)
1266+
{
1267+
clientCounter++;
1268+
clientCounter = clientCounter % predictedClientCount;
1269+
if (ownedObject.Observers.Contains(remainingClients[clientCounter].ClientId))
1270+
{
1271+
childOwner = remainingClients[clientCounter].ClientId;
1272+
break;
1273+
}
1274+
}
12651275
}
12661276

1267-
NetworkManager.SpawnManager.ChangeOwnership(childObject, targetOwner, true);
1277+
NetworkManager.SpawnManager.ChangeOwnership(childObject, childOwner, true);
12681278
if (EnableDistributeLogging)
12691279
{
12701280
Debug.Log($"[Disconnected][Client-{clientId}][Child of {ownedObject.NetworkObjectId}][NetworkObjectId-{ownedObject.NetworkObjectId} Distributed to Client-{targetOwner}");

0 commit comments

Comments
 (0)