@@ -1295,9 +1295,10 @@ internal bool NonAuthorityLocalSpawn(in NetworkObject.SerializedObject serialize
12951295 }
12961296
12971297 /// <summary>
1298- /// Handles the all the final setup and spawning needed for
1298+ /// Handles all the final setup and spawning needed for spawning a NetworkObject locally.
12991299 /// </summary>
1300- /// <returns>boolean indicating whether the spawn succeeded. Internal dev note: THIS IS A CATCH FOR OURSELVES. DON'T PULL OUT</returns>
1300+ /// <returns>boolean indicating whether the spawn succeeded.</returns>
1301+ // Internal dev note: THIS IS A CATCH FOR OURSELVES. DON'T PULL OUT
13011302 internal bool SpawnNetworkObjectLocallyCommon ( NetworkObject networkObject , ulong networkId , bool sceneObject , bool playerObject , ulong ownerClientId , bool destroyWithScene )
13021303 {
13031304 // TODO: Replace the following checks with internal Netcode asserts
@@ -1311,7 +1312,7 @@ internal bool SpawnNetworkObjectLocallyCommon(NetworkObject networkObject, ulong
13111312 return false ;
13121313 }
13131314
1314- if ( networkId == default )
1315+ if ( networkId == 0 )
13151316 {
13161317 if ( NetworkManager . LogLevel <= LogLevel . Error )
13171318 {
@@ -1320,70 +1321,18 @@ internal bool SpawnNetworkObjectLocallyCommon(NetworkObject networkObject, ulong
13201321 return false ;
13211322 }
13221323
1323- #pragma warning disable CS0618 // Type or member is obsolete
1324- // Obsolete with warning means we need the underlying behaviour to keep existing
1325- // TODO: remove in the 3.x branch
1326- networkObject . SetSceneObjectStatus ( sceneObject ) ;
1327- #pragma warning restore CS0618 // Type or member is obsolete
1324+ networkObject . SetupOnSpawn ( networkId , sceneObject , playerObject , ownerClientId , destroyWithScene ) ;
13281325
1329- // Always check to make sure our scene of origin is properly set for in-scene placed NetworkObjects
1330- // Note: Always check SceneOriginHandle directly at this specific location.
1331- if ( networkObject . InScenePlaced && networkObject . SceneOriginHandle . IsEmpty ( ) )
1332- {
1333- networkObject . SceneOrigin = networkObject . gameObject . scene ;
1334- }
1335-
1336- networkObject . NetworkObjectId = networkId ;
1337-
1338- networkObject . DestroyWithScene = sceneObject || destroyWithScene ;
1339-
1340- networkObject . IsPlayerObject = playerObject ;
1341-
1342- networkObject . OwnerClientId = ownerClientId ;
1343-
1344- // When spawned, previous owner is always the first assigned owner
1345- networkObject . PreviousOwnerId = ownerClientId ;
1346-
1347- // If this the player and the client is the owner, then lock ownership by default
1348- if ( NetworkManager . DistributedAuthorityMode && NetworkManager . LocalClientId == ownerClientId && playerObject )
1349- {
1350- networkObject . AddOwnershipExtended ( NetworkObject . OwnershipStatusExtended . Locked ) ;
1351- }
1352-
1353- networkObject . IsSpawned = true ;
13541326 SpawnedObjects . Add ( networkObject . NetworkObjectId , networkObject ) ;
13551327 SpawnedObjectsList . Add ( networkObject ) ;
1356-
1357- // If we are not running in DA mode, this is the server, and the NetworkObject has SpawnWithObservers set,
1358- // then add all connected clients as observers
1359- if ( ! NetworkManager . DistributedAuthorityMode && NetworkManager . IsServer && networkObject . SpawnWithObservers )
1360- {
1361- // If running as a server only, then make sure to always add the server's client identifier
1362- if ( ! NetworkManager . IsHost )
1363- {
1364- networkObject . AddObserver ( NetworkManager . LocalClientId ) ;
1365- }
1366-
1367- // Add client observers
1368- for ( int i = 0 ; i < NetworkManager . ConnectedClientsIds . Count ; i ++ )
1369- {
1370- // If CheckObjectVisibility has a callback, then allow that method determine who the observers are.
1371- if ( networkObject . CheckObjectVisibility != null && ! networkObject . CheckObjectVisibility ( NetworkManager . ConnectedClientsIds [ i ] ) )
1372- {
1373- continue ;
1374- }
1375- networkObject . AddObserver ( NetworkManager . ConnectedClientsIds [ i ] ) ;
1376- }
1377- }
1378-
13791328 networkObject . ApplyNetworkParenting ( ) ;
1329+
13801330 NetworkObject . CheckOrphanChildren ( ) ;
13811331
13821332 AddNetworkObjectToSceneChangedUpdates ( networkObject ) ;
13831333
13841334 networkObject . InvokeBehaviourNetworkSpawn ( ) ;
13851335
1386-
13871336 // Only dynamically spawned NetworkObjects are allowed
13881337 if ( ! sceneObject )
13891338 {
@@ -1395,13 +1344,6 @@ internal bool SpawnNetworkObjectLocallyCommon(NetworkObject networkObject, ulong
13951344 UpdateNetworkClientPlayer ( networkObject ) ;
13961345 }
13971346
1398- // If we are an in-scene placed NetworkObject and our InScenePlacedSourceGlobalObjectIdHash is set
1399- // then assign this to the PrefabGlobalObjectIdHash
1400- if ( networkObject . InScenePlaced && networkObject . InScenePlacedSourceGlobalObjectIdHash != 0 )
1401- {
1402- networkObject . PrefabGlobalObjectIdHash = networkObject . InScenePlacedSourceGlobalObjectIdHash ;
1403- }
1404-
14051347 return true ;
14061348 }
14071349
0 commit comments