Skip to content

Commit d4dc951

Browse files
committed
Address review feedback
1 parent 99e4c37 commit d4dc951

File tree

2 files changed

+16
-30
lines changed

2 files changed

+16
-30
lines changed

com.unity.netcode.gameobjects/CHANGELOG.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ Additional documentation and release notes are available at [Multiplayer Documen
2828

2929
### Fixed
3030

31-
- Early return when `ChangeOwnership` is called while not spawned. (#3933)
3231
- Fixed issue where attempts to use `NetworkLog` when there is no `NetworkManager` instance would result in an exception. (#3917)
3332

3433
### Security

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

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1762,16 +1762,15 @@ internal void SpawnInternal(bool destroyWithScene, ulong ownerClientId, bool pla
17621762
{
17631763
NetworkLog.LogError($"[{name}] When distributed authority mode is enabled, you can only spawn NetworkObjects that belong to the local instance! Local instance id {NetworkManagerOwner.LocalClientId} is not the same as the assigned owner id: {ownerClientId}!");
17641764
}
1765-
return;
17661765
}
17671766
else
17681767
{
17691768
if (NetworkManagerOwner.LogLevel <= LogLevel.Error)
17701769
{
17711770
NetworkLog.LogError($"[{name}] Only server can spawn {nameof(NetworkObject)}s.");
17721771
}
1773-
return;
17741772
}
1773+
return;
17751774
}
17761775

17771776
if (NetworkManagerOwner.DistributedAuthorityMode)
@@ -2296,7 +2295,7 @@ internal bool InternalTrySetParent(NetworkObject parent, bool worldPositionStays
22962295
private void OnTransformParentChanged()
22972296
{
22982297
var networkManager = NetworkManager;
2299-
if (!AutoObjectParentSync || networkManager.ShutdownInProgress)
2298+
if (!AutoObjectParentSync || (networkManager != null && networkManager.ShutdownInProgress))
23002299
{
23012300
return;
23022301
}
@@ -2308,18 +2307,9 @@ private void OnTransformParentChanged()
23082307

23092308
if (networkManager == null || !networkManager.IsListening)
23102309
{
2311-
// DANGO-TODO: Review as to whether we want to provide a better way to handle changing parenting of objects when the
2312-
// object is not spawned. Really, we shouldn't care about these types of changes.
2313-
if (networkManager.DistributedAuthorityMode && m_CachedParent != null && transform.parent == null)
2314-
{
2315-
m_CachedParent = null;
2316-
return;
2317-
}
23182310
transform.parent = m_CachedParent;
2319-
if (networkManager.LogLevel <= LogLevel.Error)
2320-
{
2321-
NetworkLog.LogError($"[{name}] {nameof(networkManager)} is not listening, start a server or host before re-parenting.");
2322-
}
2311+
// We want to log at any LogLevel, since we may not have a network manager may here.
2312+
NetworkLog.LogError($"[{name}] {nameof(networkManager)} is not listening, start a server or host before re-parenting.");
23232313
return;
23242314
}
23252315

@@ -2351,9 +2341,9 @@ private void OnTransformParentChanged()
23512341
if (!isParentingAuthority)
23522342
{
23532343
transform.parent = m_CachedParent;
2354-
if (NetworkManagerOwner.LogLevel <= LogLevel.Error)
2344+
if (networkManager.LogLevel <= LogLevel.Error)
23552345
{
2356-
if (NetworkManagerOwner.DistributedAuthorityMode)
2346+
if (networkManager.DistributedAuthorityMode)
23572347
{
23582348
NetworkLog.LogError($"[{name}][Not Owner] Only the owner-authority of child {gameObject.name}'s {nameof(NetworkObject)} component can re-parent it!");
23592349
}
@@ -2373,7 +2363,7 @@ private void OnTransformParentChanged()
23732363
{
23742364
transform.parent = m_CachedParent;
23752365
AuthorityAppliedParenting = false;
2376-
if (NetworkManagerOwner.LogLevel <= LogLevel.Error)
2366+
if (networkManager.LogLevel <= LogLevel.Error)
23772367
{
23782368
NetworkLog.LogErrorServer($"[{name}] Invalid parenting, {nameof(NetworkObject)} moved under a non-{nameof(NetworkObject)} parent");
23792369
}
@@ -2383,7 +2373,7 @@ private void OnTransformParentChanged()
23832373
{
23842374
transform.parent = m_CachedParent;
23852375
AuthorityAppliedParenting = false;
2386-
if (NetworkManagerOwner.LogLevel <= LogLevel.Error)
2376+
if (networkManager.LogLevel <= LogLevel.Error)
23872377
{
23882378
NetworkLog.LogErrorServer($"[{name}] {nameof(NetworkObject)} can only be re-parented under another spawned {nameof(NetworkObject)}.");
23892379
}
@@ -2424,28 +2414,28 @@ private void OnTransformParentChanged()
24242414
}
24252415

24262416
// If we're not the server, we should tell the server about this parent change
2427-
if (!NetworkManagerOwner.IsServer)
2417+
if (!networkManager.IsServer)
24282418
{
24292419
// Don't send a message in DA mode if we're the only observers of this object (we're the only authority).
2430-
if (NetworkManagerOwner.DistributedAuthorityMode && Observers.Count <= 1)
2420+
if (networkManager.DistributedAuthorityMode && Observers.Count <= 1)
24312421
{
24322422
return;
24332423
}
24342424

2435-
NetworkManagerOwner.ConnectionManager.SendMessage(ref message, MessageDeliveryType<ParentSyncMessage>.DefaultDelivery, NetworkManager.ServerClientId);
2425+
networkManager.ConnectionManager.SendMessage(ref message, MessageDeliveryType<ParentSyncMessage>.DefaultDelivery, NetworkManager.ServerClientId);
24362426
return;
24372427
}
24382428

24392429
// Otherwise we are a Server (client-server or DAHost). Send to all observers
2440-
foreach (var clientId in NetworkManagerOwner.ConnectionManager.ConnectedClientIds)
2430+
foreach (var clientId in networkManager.ConnectionManager.ConnectedClientIds)
24412431
{
24422432
if (clientId == NetworkManager.ServerClientId)
24432433
{
24442434
continue;
24452435
}
24462436
if (Observers.Contains(clientId))
24472437
{
2448-
NetworkManagerOwner.ConnectionManager.SendMessage(ref message, MessageDeliveryType<ParentSyncMessage>.DefaultDelivery, clientId);
2438+
networkManager.ConnectionManager.SendMessage(ref message, MessageDeliveryType<ParentSyncMessage>.DefaultDelivery, clientId);
24492439
}
24502440
}
24512441
}
@@ -3369,10 +3359,7 @@ internal static NetworkObject Deserialize(in SerializedObject serializedObject,
33693359
// Ensure that the buffer is completely reset
33703360
if (reader.Position != endOfSynchronizationData)
33713361
{
3372-
if (networkManager.LogLevel <= LogLevel.Normal)
3373-
{
3374-
NetworkLog.LogWarning($"[Size mismatch] Expected: {endOfSynchronizationData} Currently At: {reader.Position}!");
3375-
}
3362+
Debug.LogWarning($"[Size mismatch] Expected: {endOfSynchronizationData} Currently At: {reader.Position}!");
33763363
reader.Seek(endOfSynchronizationData);
33773364
}
33783365
}
@@ -3642,9 +3629,9 @@ internal uint CheckForGlobalObjectIdHashOverride()
36423629
return PrefabGlobalObjectIdHash;
36433630
}
36443631
// For legacy manual instantiation and spawning, check the OverrideToNetworkPrefab for a possible match
3645-
if (networkManager.NetworkConfig.Prefabs.OverrideToNetworkPrefab.ContainsKey(GlobalObjectIdHash))
3632+
if (networkManager.NetworkConfig.Prefabs.OverrideToNetworkPrefab.TryGetValue(GlobalObjectIdHash, out var overrideHash))
36463633
{
3647-
return networkManager.NetworkConfig.Prefabs.OverrideToNetworkPrefab[GlobalObjectIdHash];
3634+
return overrideHash;
36483635
}
36493636
}
36503637
}

0 commit comments

Comments
 (0)