@@ -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