Skip to content

Commit 9da750a

Browse files
committed
Fix onStartSweep
1 parent d6fb422 commit 9da750a

File tree

5 files changed

+18
-17
lines changed

5 files changed

+18
-17
lines changed

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -805,7 +805,6 @@ internal void HandleConnectionApproval(ulong ownerClientId, NetworkManager.Conne
805805
// Spawn the player NetworkObject locally
806806
NetworkManager.SpawnManager.SpawnNetworkObjectLocally(
807807
playerObject,
808-
NetworkManager,
809808
NetworkManager.SpawnManager.GetNetworkObjectId(),
810809
sceneObject: false,
811810
playerObject: true,

com.unity.netcode.gameobjects/Runtime/Core/NetworkObject.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1827,7 +1827,7 @@ internal void SpawnInternal(bool destroyWithScene, ulong ownerClientId, bool pla
18271827
}
18281828
}
18291829

1830-
NetworkManager.SpawnManager.SpawnNetworkObjectLocally(this, NetworkManagerOwner, NetworkManager.SpawnManager.GetNetworkObjectId(), IsSceneObject.HasValue && IsSceneObject.Value, playerObject, ownerClientId, destroyWithScene);
1830+
NetworkManager.SpawnManager.SpawnNetworkObjectLocally(this, NetworkManager.SpawnManager.GetNetworkObjectId(), IsSceneObject.HasValue && IsSceneObject.Value, playerObject, ownerClientId, destroyWithScene);
18311831

18321832
if ((NetworkManager.DistributedAuthorityMode && NetworkManager.DAHost) || (!NetworkManager.DistributedAuthorityMode && NetworkManager.IsServer))
18331833
{

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1822,7 +1822,7 @@ private void OnSessionOwnerLoadedScene(uint sceneEventId, Scene scene)
18221822
if (!keyValuePairBySceneHandle.Value.IsPlayerObject)
18231823
{
18241824
// All in-scene placed NetworkObjects default to being owned by the server
1825-
NetworkManager.SpawnManager.SpawnNetworkObjectLocally(keyValuePairBySceneHandle.Value, NetworkManager,
1825+
NetworkManager.SpawnManager.SpawnNetworkObjectLocally(keyValuePairBySceneHandle.Value,
18261826
NetworkManager.SpawnManager.GetNetworkObjectId(), true, false, NetworkManager.LocalClientId, true);
18271827
}
18281828
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ internal void AddDespawnedInSceneNetworkObjects()
377377
foreach (var sobj in inSceneNetworkObjects)
378378
{
379379
// For integration tests, don't collect objects that don't belong to us.
380-
if (sobj.NetworkManagerOwner != null && sobj.NetworkManagerOwner != m_NetworkManager)
380+
if (sobj.NetworkManager != m_NetworkManager)
381381
{
382382
continue;
383383
}

com.unity.netcode.gameobjects/Runtime/Spawning/NetworkSpawnManager.cs

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,7 +1030,7 @@ internal NetworkObject CreateLocalNetworkObject(NetworkObject.SceneObject sceneO
10301030
/// Distributed Authority:
10311031
/// DAHost client and standard DA clients invoke this method.
10321032
/// </summary>
1033-
internal void SpawnNetworkObjectLocally(NetworkObject networkObject, NetworkManager networkManager, ulong networkId, bool sceneObject, bool playerObject, ulong ownerClientId, bool destroyWithScene)
1033+
internal void SpawnNetworkObjectLocally(NetworkObject networkObject, ulong networkId, bool sceneObject, bool playerObject, ulong ownerClientId, bool destroyWithScene)
10341034
{
10351035
if (networkObject == null)
10361036
{
@@ -1051,12 +1051,9 @@ internal void SpawnNetworkObjectLocally(NetworkObject networkObject, NetworkMana
10511051
Debug.LogError("Spawning NetworkObjects with nested NetworkObjects is only supported for scene objects. Child NetworkObjects will not be spawned over the network!");
10521052
}
10531053
}
1054+
10541055
// Invoke NetworkBehaviour.OnPreSpawn methods
1055-
if (networkObject.NetworkManagerOwner != networkManager || NetworkManager != networkManager)
1056-
{
1057-
Debug.LogWarning("overriding network manager");
1058-
}
1059-
networkObject.NetworkManagerOwner = networkManager;
1056+
networkObject.NetworkManagerOwner = NetworkManager;
10601057
networkObject.InvokeBehaviourNetworkPreSpawn();
10611058

10621059
// DANGO-TODO: It would be nice to allow users to specify which clients are observers prior to spawning
@@ -1103,6 +1100,11 @@ internal void SpawnNetworkObjectLocally(NetworkObject networkObject, NetworkMana
11031100

11041101
internal void SpawnNetworkObjectLocallyCommon(NetworkObject networkObject, ulong networkId, bool sceneObject, bool playerObject, ulong ownerClientId, bool destroyWithScene)
11051102
{
1103+
if (networkObject.NetworkManagerOwner == null)
1104+
{
1105+
Debug.LogError("NetworkManagerOwner should not be null!");
1106+
}
1107+
11061108
if (SpawnedObjects.ContainsKey(networkId))
11071109
{
11081110
Debug.LogWarning($"[{NetworkManager.name}] Trying to spawn {networkObject.name} with a {nameof(NetworkObject.NetworkObjectId)} of {networkId} but it is already in the spawned list!");
@@ -1471,25 +1473,25 @@ internal void ServerSpawnSceneObjectsOnStartSweep()
14711473
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>();
14721474
#endif
14731475
var networkObjectsToSpawn = new List<NetworkObject>();
1474-
for (int i = 0; i < networkObjects.Length; i++)
1476+
foreach (var networkObject in networkObjects)
14751477
{
1476-
if (networkObjects[i].NetworkManager != NetworkManager)
1478+
if (networkObject.NetworkManager != NetworkManager)
14771479
{
1478-
Debug.LogWarning("Well this is strange");
1480+
continue;
14791481
}
14801482
// This used to be two loops.
14811483
// The first added all NetworkObjects to a list and the second spawned all NetworkObjects in the list.
14821484
// Now, a parent will set its children's IsSceneObject value when spawned, so we check for null or for true.
1483-
if (networkObjects[i].IsSceneObject == null || (networkObjects[i].IsSceneObject.HasValue && networkObjects[i].IsSceneObject.Value))
1485+
if (networkObject.IsSceneObject == null || (networkObject.IsSceneObject.HasValue && networkObject.IsSceneObject.Value))
14841486
{
1485-
var ownerId = networkObjects[i].OwnerClientId;
1487+
var ownerId = networkObject.OwnerClientId;
14861488
if (NetworkManager.DistributedAuthorityMode)
14871489
{
14881490
ownerId = NetworkManager.LocalClientId;
14891491
}
14901492

1491-
SpawnNetworkObjectLocally(networkObjects[i], NetworkManager, GetNetworkObjectId(), true, false, ownerId, true);
1492-
networkObjectsToSpawn.Add(networkObjects[i]);
1493+
SpawnNetworkObjectLocally(networkObject, GetNetworkObjectId(), true, false, ownerId, true);
1494+
networkObjectsToSpawn.Add(networkObject);
14931495
}
14941496
}
14951497

0 commit comments

Comments
 (0)